Loading fs/namei.c +17 −23 Original line number Diff line number Diff line Loading @@ -1826,23 +1826,6 @@ static int link_path_walk(const char *name, struct nameidata *nd) last->name = name; name = s; goto start; back: name = last->name; if (unlikely(err)) { put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Err; } else { err = walk_component(nd, LOOKUP_FOLLOW); put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Walked; } } } if (!d_can_lookup(nd->path.dentry)) { Loading @@ -1852,13 +1835,24 @@ static int link_path_walk(const char *name, struct nameidata *nd) } terminate_walk(nd); Err: if (likely(!nd->depth)) while (unlikely(nd->depth)) { put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; } return err; goto back; OK: if (likely(!nd->depth)) if (unlikely(nd->depth)) { name = last->name; err = walk_component(nd, LOOKUP_FOLLOW); put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Walked; } return 0; goto back; } static int path_init(int dfd, const struct filename *name, unsigned int flags, Loading Loading
fs/namei.c +17 −23 Original line number Diff line number Diff line Loading @@ -1826,23 +1826,6 @@ static int link_path_walk(const char *name, struct nameidata *nd) last->name = name; name = s; goto start; back: name = last->name; if (unlikely(err)) { put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Err; } else { err = walk_component(nd, LOOKUP_FOLLOW); put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Walked; } } } if (!d_can_lookup(nd->path.dentry)) { Loading @@ -1852,13 +1835,24 @@ static int link_path_walk(const char *name, struct nameidata *nd) } terminate_walk(nd); Err: if (likely(!nd->depth)) while (unlikely(nd->depth)) { put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; } return err; goto back; OK: if (likely(!nd->depth)) if (unlikely(nd->depth)) { name = last->name; err = walk_component(nd, LOOKUP_FOLLOW); put_link(nd, &last->link, last->cookie); current->link_count--; nd->depth--; last--; goto Walked; } return 0; goto back; } static int path_init(int dfd, const struct filename *name, unsigned int flags, Loading