Messages in this thread | | | Subject | Re: [PATCH] autofs4 doesn't expire | From | Jeremy Fitzhardinge <> | Date | 05 Aug 2003 21:34:14 -0700 |
| |
On Tue, 2003-08-05 at 21:28, Maneesh Soni wrote: > Sorry, I don't think it is correct. This code is called under dcache_lock, > taken in is_tree_busy(). mntput() calls dput() and which can lead to deadlock.
Urk. On the other hand, it only calls dput if the refcount drops to zero, which it can't because there's already a reference (hence the -2 in is_vfsmnt_tree_busy).
I'm not too keen on releasing dcache lock, since the whole point is to keep the dcache tree stable while we traverse it.
> @@ -71,7 +74,8 @@ static int check_vfsmnt(struct vfsmount > struct vfsmount *vfs = lookup_mnt(mnt, dentry); > > if (vfs && is_vfsmnt_tree_busy(vfs)) > - ret--; > + ret = 0;
Erm, why?
J
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |