[6763] in Athena Bugs

home help back first fref pref prev next nref lref last post

iget race condition

daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Tue Jan 1 20:40:58 1991

To: bugs@ATHENA.MIT.EDU
Cc: probe@ATHENA.MIT.EDU
Date: Tue, 01 Jan 91 20:40:42 EST
From: John Carr <jfc@ATHENA.MIT.EDU>


If a filesystem is unmounted while a process is in iget() waiting on an
inode on that filesystem, iget() will panic ("iget: bad dev").  The first
argument to iget() is a device.  If this device is not mounted, iget()
panics.  If the inode is locked, iget() sleeps and starts over.  It is
possible for the filesystem containing the inode to be unmounted while
iget is sleeping, in which case it panics.  There are three possible
fixes:

	1. change the kernel so that a filesystem can not be unmounted if
	the IWANT flag is set on any inode.

	2. use the 4.3/tahoe UFS code, which has a rewritten iget().  This
	appears to fix this case.

	3. set u.u_error and return NULL


home help back first fref pref prev next nref lref last post