Re: [PATCH] autofs4 doesn't expire

From: Jeremy Fitzhardinge (jeremy@goop.org)
Date: Tue Aug 05 2003 - 23:34:14 EST


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/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:31 EST