diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-05-02 20:19:23 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-05-10 22:20:00 -0400 |
commit | b9ff44293c64bf377e344c4cdc05d774b393cc6f (patch) | |
tree | f17f7f076a1eb3dea29c025647f1f49e45ab241f /fs | |
parent | 1d8e03d359fd07edc884ffc45d42d60be9d9f098 (diff) | |
download | op-kernel-dev-b9ff44293c64bf377e344c4cdc05d774b393cc6f.zip op-kernel-dev-b9ff44293c64bf377e344c4cdc05d774b393cc6f.tar.gz |
namei: trim redundant arguments of fs/namei.c:put_link()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namei.c | 25 |
1 files changed, 13 insertions, 12 deletions
@@ -718,12 +718,13 @@ void nd_jump_link(struct nameidata *nd, struct path *path) nd->flags |= LOOKUP_JUMPED; } -static inline void put_link(struct nameidata *nd, struct path *link, void *cookie) +static inline void put_link(struct nameidata *nd) { - struct inode *inode = link->dentry->d_inode; - if (cookie && inode->i_op->put_link) - inode->i_op->put_link(link->dentry, cookie); - path_put(link); + struct saved *last = nd->stack + nd->depth; + struct inode *inode = last->link.dentry->d_inode; + if (last->cookie && inode->i_op->put_link) + inode->i_op->put_link(last->link.dentry, last->cookie); + path_put(&last->link); } int sysctl_protected_symlinks __read_mostly = 0; @@ -1809,7 +1810,7 @@ Walked: err = 0; if (unlikely(!s)) { /* jumped */ - put_link(nd, &last->link, last->cookie); + put_link(nd); current->link_count--; nd->depth--; last--; @@ -1840,7 +1841,7 @@ Walked: terminate_walk(nd); Err: while (unlikely(nd->depth)) { - put_link(nd, &last->link, last->cookie); + put_link(nd); current->link_count--; nd->depth--; last--; @@ -1850,7 +1851,7 @@ OK: if (unlikely(nd->depth)) { name = last->name; err = walk_component(nd, LOOKUP_FOLLOW); - put_link(nd, &last->link, last->cookie); + put_link(nd); current->link_count--; nd->depth--; last--; @@ -1995,7 +1996,7 @@ static int trailing_symlink(struct nameidata *nd) nd->inode = nd->path.dentry->d_inode; error = link_path_walk(s, nd); if (unlikely(error)) - put_link(nd, &nd->stack[0].link, nd->stack[0].cookie); + put_link(nd); return error; } @@ -2036,7 +2037,7 @@ static int path_lookupat(int dfd, const struct filename *name, if (err) break; err = lookup_last(nd); - put_link(nd, &nd->stack[0].link, nd->stack[0].cookie); + put_link(nd); } } @@ -2380,7 +2381,7 @@ path_mountpoint(int dfd, const struct filename *name, struct path *path, if (err) break; err = mountpoint_last(nd, path); - put_link(nd, &nd->stack[0].link, nd->stack[0].cookie); + put_link(nd); } out: path_cleanup(nd); @@ -3262,7 +3263,7 @@ static struct file *path_openat(int dfd, struct filename *pathname, if (unlikely(error)) break; error = do_last(nd, file, op, &opened, pathname); - put_link(nd, &nd->stack[0].link, nd->stack[0].cookie); + put_link(nd); } out: path_cleanup(nd); |