[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TAKE - Fix xfsdump / xfs_open_by_handle umount problem



A bug showed up where umount failed after xfsdump on a filesystem,
due to a busy inode.

xfsdump calls xfs_open_by_handle, which will allocate a new dentry
if it doesn't find one already in the dcache.  Problem is, this
dentry isn't connected anywhere in the dcache, and it's holding a
reference count on the inode...  umount code tears down the dcache,
but it never found this dentry, so its inode stayed busy.

Removing the call to d_rehash solves this problem, since dput
will just tear down unreachable dentrys when the file is closed.

Also added DCACHE_REFERENCED flag to the newly created dcache.


Date:  Thu Aug  9 13:19:32 PDT 2001
Workarea:  stout.americas.sgi.com:/localhome/eric/2.4.x-xfs/workarea

The following file(s) were checked into:
  bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs


Modid:  2.4.x-xfs:slinx:100478a
linux/fs/xfs/linux/xfs_ioctl.c - 1.44
	- Add DCACHE_REFERENCED to dentry flags in xfs_open_by_handle.
	  Don't call d_rehash on new dentry so that dput will tear it down.