On Sat, Jul 10, 2004 at 02:57:46PM +0800, [EMAIL PROTECTED] wrote: > On Thu, 8 Jul 2004, Thomas Moestl wrote: > > I believe that I have found two problems: > > > > - The NFS async unlink code (fs/nfs/unlink.c) does keep a dentry for > > later asynchronous processing, but the mount point is unbusied via > > path_release() once sys_unlink() returns (fs/namei.c). [...]
This used to be a bug. It was fixed in 2.4.26 with http://linux.bkbits.net:8080/linux-2.4/diffs/fs/nfs/[EMAIL PROTECTED] What happens now is that the dentry and its inode are cleaned up when the async unlink task is deleted in nfs_put_super() between the first and second calls to invalidate_inodes() in kill_super(). > > - There is a SMP race between the shrink_dcache_parent() (fs/dcache.c) > > called from kill_super() and prune_dache() called via > > shrink_dache_memory() (called by kswapd), as follows: [...] Your scenario sounds plausible and might explain at least some of the autofs unmount races we've been seeing. > > In the attached patch, I have used a semaphore to serialize purging > > accesses to the dentry_unused list. [...] Can we see the patch please? Greg. -- Greg Banks, R&D Software Engineer, SGI Australian Software Group. I don't speak for SGI. _______________________________________________ autofs mailing list [EMAIL PROTECTED] http://linux.kernel.org/mailman/listinfo/autofs
