There is a ref count problem in fs/namei.c:do_lookup(). When walking in ref-walk mode, if follow_managed() returns a fail the reference held by path.dentry isn't dropped. --- fs/namei.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index b753192..dbc36ff 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1272,8 +1272,11 @@ done: path->mnt = mnt; path->dentry = dentry; err = follow_managed(path, nd->flags); - if (unlikely(err < 0)) + if (unlikely(err < 0)) { + if (!(nd->flags & LOOKUP_RCU)) + dput(dentry); return err; + } *inode = path->dentry->d_inode; return 0; -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html