summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/exec.c2
-rw-r--r--fs/intermezzo/presto.c2
-rw-r--r--fs/intermezzo/vfs.c4
-rw-r--r--fs/namei.c11
-rw-r--r--fs/namespace.c12
-rw-r--r--fs/nfsd/export.c4
-rw-r--r--fs/open.c5
-rw-r--r--fs/super.c2
8 files changed, 18 insertions, 24 deletions
diff --git a/fs/exec.c b/fs/exec.c
index bd153a4e55ad..3c98af10b3bc 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -347,7 +347,7 @@ struct file *open_exec(const char *name)
struct file *file;
int err = 0;
- if (path_init(name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, &nd))
+ if (path_init(name, LOOKUP_FOLLOW, &nd))
err = path_walk(name, &nd);
file = ERR_PTR(err);
if (!err) {
diff --git a/fs/intermezzo/presto.c b/fs/intermezzo/presto.c
index 8c0d22467901..0b4ac7c97e2f 100644
--- a/fs/intermezzo/presto.c
+++ b/fs/intermezzo/presto.c
@@ -40,7 +40,7 @@ int presto_walk(const char *name, struct nameidata *nd)
resolved pathname and not the symlink. SHP
XXX: This code implies that direct symlinks do not work. SHP
*/
- unsigned int flags = LOOKUP_POSITIVE;
+ unsigned int flags = 0;
ENTRY;
err = 0;
diff --git a/fs/intermezzo/vfs.c b/fs/intermezzo/vfs.c
index 2af4d255852f..b632c8c92eeb 100644
--- a/fs/intermezzo/vfs.c
+++ b/fs/intermezzo/vfs.c
@@ -538,7 +538,7 @@ int lento_create(const char *name, int mode, struct lento_vfs_context *info)
}
/* this looks up the parent */
-// if (path_init(pathname, LOOKUP_FOLLOW | LOOKUP_POSITIVE, &nd))
+// if (path_init(pathname, LOOKUP_FOLLOW, &nd))
if (path_init(pathname, LOOKUP_PARENT, &nd))
error = path_walk(pathname, &nd);
if (error) {
@@ -687,7 +687,7 @@ int lento_link(const char * oldname, const char * newname,
struct nameidata nd, old_nd;
error = 0;
- if (path_init(from, LOOKUP_POSITIVE, &old_nd))
+ if (path_init(from, 0, &old_nd))
error = path_walk(from, &old_nd);
if (error)
goto exit;
diff --git a/fs/namei.c b/fs/namei.c
index 1d9d4bebd2e7..46cbb0cf6d56 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -609,18 +609,13 @@ last_component:
}
err = -ENOENT;
if (!inode)
- goto no_inode;
+ break;
if (lookup_flags & LOOKUP_DIRECTORY) {
err = -ENOTDIR;
if (!inode->i_op || !inode->i_op->lookup)
break;
}
goto return_base;
-no_inode:
- err = -ENOENT;
- if (lookup_flags & (LOOKUP_POSITIVE|LOOKUP_DIRECTORY))
- break;
- goto return_base;
lookup_parent:
nd->last = this;
nd->last_type = LAST_NORM;
@@ -691,7 +686,7 @@ void set_fs_altroot(void)
nd.mnt = mntget(current->fs->rootmnt);
nd.dentry = dget(current->fs->root);
read_unlock(&current->fs->lock);
- nd.flags = LOOKUP_FOLLOW|LOOKUP_DIRECTORY|LOOKUP_POSITIVE;
+ nd.flags = LOOKUP_FOLLOW|LOOKUP_DIRECTORY;
if (path_walk(emul,&nd) == 0) {
mnt = nd.mnt;
dentry = nd.dentry;
@@ -1648,7 +1643,7 @@ asmlinkage long sys_link(const char * oldname, const char * newname)
struct nameidata nd, old_nd;
error = 0;
- if (path_init(from, LOOKUP_POSITIVE, &old_nd))
+ if (path_init(from, 0, &old_nd))
error = path_walk(from, &old_nd);
if (error)
goto exit;
diff --git a/fs/namespace.c b/fs/namespace.c
index 982a0cfd1c70..835719e2dc95 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -368,7 +368,7 @@ asmlinkage long sys_umount(char * name, int flags)
if (IS_ERR(kname))
goto out;
retval = 0;
- if (path_init(kname, LOOKUP_POSITIVE|LOOKUP_FOLLOW, &nd))
+ if (path_init(kname, LOOKUP_FOLLOW, &nd))
retval = path_walk(kname, &nd);
putname(kname);
if (retval)
@@ -497,7 +497,7 @@ static int do_loopback(struct nameidata *nd, char *old_name, int recurse)
return err;
if (!old_name || !*old_name)
return -EINVAL;
- if (path_init(old_name, LOOKUP_POSITIVE|LOOKUP_FOLLOW, &old_nd))
+ if (path_init(old_name, LOOKUP_FOLLOW, &old_nd))
err = path_walk(old_name, &old_nd);
if (err)
return err;
@@ -564,7 +564,7 @@ static int do_move_mount(struct nameidata *nd, char *old_name)
return -EPERM;
if (!old_name || !*old_name)
return -EINVAL;
- if (path_init(old_name, LOOKUP_POSITIVE|LOOKUP_FOLLOW, &old_nd))
+ if (path_init(old_name, LOOKUP_FOLLOW, &old_nd))
err = path_walk(old_name, &old_nd);
if (err)
return err;
@@ -731,7 +731,7 @@ long do_mount(char * dev_name, char * dir_name, char *type_page,
flags &= ~(MS_NOSUID|MS_NOEXEC|MS_NODEV);
/* ... and get the mountpoint */
- if (path_init(dir_name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, &nd))
+ if (path_init(dir_name, LOOKUP_FOLLOW, &nd))
retval = path_walk(dir_name, &nd);
if (retval)
return retval;
@@ -924,7 +924,7 @@ asmlinkage long sys_pivot_root(const char *new_root, const char *put_old)
if (IS_ERR(name))
goto out0;
error = 0;
- if (path_init(name, LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &new_nd))
+ if (path_init(name, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &new_nd))
error = path_walk(name, &new_nd);
putname(name);
if (error)
@@ -938,7 +938,7 @@ asmlinkage long sys_pivot_root(const char *new_root, const char *put_old)
if (IS_ERR(name))
goto out1;
error = 0;
- if (path_init(name, LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &old_nd))
+ if (path_init(name, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &old_nd))
error = path_walk(name, &old_nd);
putname(name);
if (error)
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index 6f7339fb8b26..1913b4d4da81 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -239,7 +239,7 @@ exp_export(struct nfsctl_export *nxp)
/* Look up the dentry */
err = 0;
- if (path_init(nxp->ex_path, LOOKUP_POSITIVE, &nd))
+ if (path_init(nxp->ex_path, 0, &nd))
err = path_walk(nxp->ex_path, &nd);
if (err)
goto out_unlock;
@@ -408,7 +408,7 @@ exp_rootfh(struct svc_client *clp, char *path, struct knfsd_fh *f, int maxsize)
err = -EPERM;
/* NB: we probably ought to check that it's NUL-terminated */
- if (path_init(path, LOOKUP_POSITIVE, &nd) &&
+ if (path_init(path, 0, &nd) &&
path_walk(path, &nd)) {
printk("nfsd: exp_rootfh path not found %s", path);
return err;
diff --git a/fs/open.c b/fs/open.c
index aba53ed8dd83..f32c5aada4fd 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -368,7 +368,7 @@ asmlinkage long sys_chdir(const char * filename)
goto out;
error = 0;
- if (path_init(name,LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY,&nd))
+ if (path_init(name,LOOKUP_FOLLOW|LOOKUP_DIRECTORY,&nd))
error = path_walk(name, &nd);
putname(name);
if (error)
@@ -427,8 +427,7 @@ asmlinkage long sys_chroot(const char * filename)
if (IS_ERR(name))
goto out;
- path_init(name, LOOKUP_POSITIVE | LOOKUP_FOLLOW |
- LOOKUP_DIRECTORY | LOOKUP_NOALT, &nd);
+ path_init(name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_NOALT, &nd);
error = path_walk(name, &nd);
putname(name);
if (error)
diff --git a/fs/super.c b/fs/super.c
index 948cdc93188c..39ec3ab54d4a 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -700,7 +700,7 @@ struct super_block *get_sb_bdev(struct file_system_type *fs_type,
/* What device it is? */
if (!dev_name || !*dev_name)
return ERR_PTR(-EINVAL);
- if (path_init(dev_name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, &nd))
+ if (path_init(dev_name, LOOKUP_FOLLOW, &nd))
error = path_walk(dev_name, &nd);
if (error)
return ERR_PTR(error);