Commit bb8603f8 authored by Al Viro's avatar Al Viro
Browse files

link_path_walk: get rid of duplication



What we do after the second walk_component() + put_link() + depth
decrement in there is exactly equivalent to what's done right
after the first walk_component().  Easy to verify and not at all
surprising, seeing that there we have just walked the last
component of nested symlink.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 48c8b0c5
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -1771,6 +1771,7 @@ static int link_path_walk(const char *name, struct nameidata *nd)
			return 0;

		err = walk_component(nd, LOOKUP_FOLLOW);
Walked:
		if (err < 0)
			return err;

@@ -1789,7 +1790,6 @@ static int link_path_walk(const char *name, struct nameidata *nd)
			nd->depth++;
			current->link_count++;

loop:	/* will be gone very soon */
			link = nd->link;
			s = get_link(&link, nd, &cookie);

@@ -1826,13 +1826,7 @@ loop: /* will be gone very soon */
					put_link(nd, &link, cookie);
					current->link_count--;
					nd->depth--;
					if (err < 0)
						return err;
					if (err > 0) {
						current->link_count++;
						nd->depth++;
						goto loop;
					}
					goto Walked;
				}
			}
		}