lkml.org 
[lkml]   [2015]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 042/110] link_path_walk: get rid of duplication
    Date
    From: Al Viro <viro@zeniv.linux.org.uk>

    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: Al Viro <viro@zeniv.linux.org.uk>
    ---
    fs/namei.c | 10 ++--------
    1 file changed, 2 insertions(+), 8 deletions(-)

    diff --git a/fs/namei.c b/fs/namei.c
    index b7ba718..9f45d33 100644
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -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;
    }
    }
    }
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-05-11 21:01    [W:4.089 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site