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;