diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-04-07 11:53:49 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:35:59 -0400 |
commit | 5b857119538daac7118c1364d7ff3613f12b84d3 (patch) | |
tree | 18b85315f6e0e6b4f0c906cf0601593d8df97422 /fs/namei.c | |
parent | 2a737871108de9ba8930f7650d549f1383767f8b (diff) |
Make vfs_path_lookup() use starting point as root
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/namei.c b/fs/namei.c index 88baaf2b9167..4379ef989709 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1123,21 +1123,20 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt, | |||
1123 | nd->last_type = LAST_ROOT; | 1123 | nd->last_type = LAST_ROOT; |
1124 | nd->flags = flags; | 1124 | nd->flags = flags; |
1125 | nd->depth = 0; | 1125 | nd->depth = 0; |
1126 | nd->root.mnt = NULL; | ||
1127 | 1126 | ||
1128 | nd->path.dentry = dentry; | 1127 | nd->path.dentry = dentry; |
1129 | nd->path.mnt = mnt; | 1128 | nd->path.mnt = mnt; |
1130 | path_get(&nd->path); | 1129 | path_get(&nd->path); |
1130 | nd->root = nd->path; | ||
1131 | path_get(&nd->root); | ||
1131 | 1132 | ||
1132 | retval = path_walk(name, nd); | 1133 | retval = path_walk(name, nd); |
1133 | if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry && | 1134 | if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry && |
1134 | nd->path.dentry->d_inode)) | 1135 | nd->path.dentry->d_inode)) |
1135 | audit_inode(name, nd->path.dentry); | 1136 | audit_inode(name, nd->path.dentry); |
1136 | 1137 | ||
1137 | if (nd->root.mnt) { | 1138 | path_put(&nd->root); |
1138 | path_put(&nd->root); | 1139 | nd->root.mnt = NULL; |
1139 | nd->root.mnt = NULL; | ||
1140 | } | ||
1141 | 1140 | ||
1142 | return retval; | 1141 | return retval; |
1143 | } | 1142 | } |