diff --git a/[refs] b/[refs] index dad69b4eba26..90894b6f71c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a15a3f6fc67d910f43098acec6e19d25a37d7cb9 +refs/heads/master: ba7a4c1a76f56c607560f1676680ff491747bdae diff --git a/trunk/fs/namei.c b/trunk/fs/namei.c index 37fcf941fa3f..5153f57ee6b3 100644 --- a/trunk/fs/namei.c +++ b/trunk/fs/namei.c @@ -1501,11 +1501,8 @@ int open_namei(const char * pathname, int flag, int mode, struct nameidata *nd) if (__follow_mount(&path)) { error = -ELOOP; - if (flag & O_NOFOLLOW) { - dput(path.dentry); - mntput(path.mnt); - goto exit; - } + if (flag & O_NOFOLLOW) + goto exit_dput; } error = -ENOENT; if (!path.dentry->d_inode) @@ -1530,8 +1527,7 @@ int open_namei(const char * pathname, int flag, int mode, struct nameidata *nd) exit_dput: dput(path.dentry); if (nd->mnt != path.mnt) - mntput(nd->mnt); - nd->mnt = path.mnt; + mntput(path.mnt); exit: path_release(nd); return error;