aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2015-05-03 21:02:40 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2015-05-10 22:20:04 -0400
commit0fd889d59e12f860358866b6ddeee4bb7011aaad (patch)
tree37af83c6f5d9644b60d3793b663bbafb71491841
parenttrailing_symlink: nd->depth massage, part 5 (diff)
downloadlinux-dev-0fd889d59e12f860358866b6ddeee4bb7011aaad.tar.xz
linux-dev-0fd889d59e12f860358866b6ddeee4bb7011aaad.zip
get_link: nd->depth massage, part 6
make get_link() increment nd->depth on successful exit Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/namei.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c
index 5753f46d8321..93b5f7353e70 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -918,8 +918,10 @@ const char *get_link(struct nameidata *nd)
out:
path_put(&nd->path);
path_put(&last->link);
+ return res;
}
}
+ nd->depth++;
return res;
}
@@ -1830,11 +1832,9 @@ Walked:
}
s = get_link(nd);
- nd->depth++;
if (unlikely(IS_ERR(s))) {
err = PTR_ERR(s);
- nd->depth--;
goto Err;
}
err = 0;
@@ -2009,7 +2009,6 @@ static int trailing_symlink(struct nameidata *nd)
s = get_link(nd);
if (unlikely(IS_ERR(s)))
return PTR_ERR(s);
- nd->depth++;
if (unlikely(!s)) {
nd->depth--;
return 0;