Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 May 2001 16:47:01 +0100
From:      Ian Dowse <iedowse@maths.tcd.ie>
To:        Ruslan Ermilov <ru@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org, iedowse@maths.tcd.ie
Subject:   Re: cvs commit: src/sys/coda coda_vfsops.c src/sys/fs/devfs devfs_vfsops.c src/sys/fs/hpfs hpfs_vfsops.c src/sys/fs/smbfs smbfs_vfsops.c src/sys/gnu/ext2fs ext2_vfsops.c src/sys/isofs/cd9660 cd9660_vfsops.c src/sys/kern vfs_subr.c ... 
Message-ID:   <200105171647.aa73697@salmon.maths.tcd.ie>
In-Reply-To: Your message of "Thu, 17 May 2001 10:10:36 %2B0300." <20010517101036.C31873@sunbay.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <20010517101036.C31873@sunbay.com>, Ruslan Ermilov writes:
>>   This commit also fixes a vnode reference leak in devfs, which could
>>   result in idle devfs filesystems that refuse to unmount.
>>   
>Does this fix the case when DEVFS can't be unmounted on reboot?

Quite possibly; devfs is one of the filesystems on which a forced
unmount used to fail if there were any extra references held on
the filesystem root vnode. The bug mentioned above would add an
extra reference to the filesystem root vnode when a non-forced
unmount failed because of references to a non-root vnode. So after
one such failed unmount, all forced or non-forced unmounts would
fail, e.g this would trigger it:

	mount -t devfs none /mnt
	(cd /mnt/fd; sleep 100) &	# add an extra ref on /mnt/fd
	umount /mnt			# fails, and leaks a root vnode ref
	kill %1

	umount /mnt			# fails
	umount -f /mnt			# fails

Following this change, forced unmounts can never fail with EBUSY,
although they could still hang indefinitely waiting to lock a vnode,
as has always been the case. Was there an easy way to repeat the
devfs problem you mention?

Ian

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi? <200105171647.aa73697>