aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2009-04-07 11:53:49 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2009-06-11 21:35:59 -0400
commit5b857119538daac7118c1364d7ff3613f12b84d3 (patch)
tree18b85315f6e0e6b4f0c906cf0601593d8df97422
parent2a737871108de9ba8930f7650d549f1383767f8b (diff)
Make vfs_path_lookup() use starting point as root
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/namei.c9
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}