Message ID | 20140830173638.GE7996@ZenIV.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Could you check if vfs.git#for-linus fixes that crap? -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Aug 31, 2014 at 7:27 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> Could you check if vfs.git#for-linus fixes that crap?
The related commits are the top two of vfs.git#for-linus, right? I
cherry-picked them to 3.14.15 and they fixed the bug instantly. Thank
you for the quick fix!
Cheers,
Tao
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Aug 31, 2014 at 08:31:47AM +0800, Peng Tao wrote: > On Sun, Aug 31, 2014 at 7:27 AM, Al Viro <viro@zeniv.linux.org.uk> wrote: > > Could you check if vfs.git#for-linus fixes that crap? > The related commits are the top two of vfs.git#for-linus, right? I > cherry-picked them to 3.14.15 and they fixed the bug instantly. Thank > you for the quick fix! Folks, could somebody put together an xfstests (or LTP, for that matter) patch adding that testcase? Which regression suite is normally used for NFS work, BTW? It's not, strictly speaking, an NFS-specific bug (you can trigger the same thing on AFS and CIFS as well), but NFS is by far the most common of those three, so... -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Aug 31, 2014 at 05:09:10AM +0100, Al Viro wrote: > On Sun, Aug 31, 2014 at 08:31:47AM +0800, Peng Tao wrote: > > On Sun, Aug 31, 2014 at 7:27 AM, Al Viro <viro@zeniv.linux.org.uk> wrote: > > > Could you check if vfs.git#for-linus fixes that crap? > > The related commits are the top two of vfs.git#for-linus, right? I > > cherry-picked them to 3.14.15 and they fixed the bug instantly. Thank > > you for the quick fix! > > Folks, could somebody put together an xfstests (or LTP, for that matter) > patch adding that testcase? Which regression suite is normally used > for NFS work, BTW? It's not, strictly speaking, an NFS-specific bug > (you can trigger the same thing on AFS and CIFS as well), but NFS is > by far the most common of those three, so... You can use xfstests to test NFS from the client side, and there are patches pending to add CIFS client support to xfstests as well. Cheers, Dave.
diff --git a/fs/namespace.c b/fs/namespace.c index 3733cfb..00e5b1e 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1299,6 +1299,11 @@ static void namespace_unlock(void) head.first->pprev = &head.first; INIT_HLIST_HEAD(&unmounted); + /* undo decrements we'd done in umount_tree() */ + hlist_for_each_entry(mnt, &head, mnt_hash) + if (mnt->mnt_ex_mountpoint.mnt) + mntget(mnt->mnt_ex_mountpoint.mnt); + up_write(&namespace_sem); synchronize_rcu(); @@ -1351,6 +1356,7 @@ void umount_tree(struct mount *mnt, int how) if (mnt_has_parent(p)) { hlist_del_init(&p->mnt_mp_list); put_mountpoint(p->mnt_mp); + mnt_add_count(p->mnt_parent, -1); /* move the reference to mountpoint into ->mnt_ex_mountpoint */ p->mnt_ex_mountpoint.dentry = p->mnt_mountpoint; p->mnt_ex_mountpoint.mnt = &p->mnt_parent->mnt;