Commit 312b63fb authored by Al Viro's avatar Al Viro

don't pass nameidata * to vfs_create()

all we want is a boolean flag, same as the method gets now
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ebfc3b49
...@@ -567,7 +567,7 @@ int cachefiles_walk_to_object(struct cachefiles_object *parent, ...@@ -567,7 +567,7 @@ int cachefiles_walk_to_object(struct cachefiles_object *parent,
if (ret < 0) if (ret < 0)
goto create_error; goto create_error;
start = jiffies; start = jiffies;
ret = vfs_create(dir->d_inode, next, S_IFREG, NULL); ret = vfs_create(dir->d_inode, next, S_IFREG, true);
cachefiles_hist(cachefiles_create_histogram, start); cachefiles_hist(cachefiles_create_histogram, start);
if (ret < 0) if (ret < 0)
goto create_error; goto create_error;
......
...@@ -173,7 +173,7 @@ ecryptfs_do_create(struct inode *directory_inode, ...@@ -173,7 +173,7 @@ ecryptfs_do_create(struct inode *directory_inode,
inode = ERR_CAST(lower_dir_dentry); inode = ERR_CAST(lower_dir_dentry);
goto out; goto out;
} }
rc = vfs_create(lower_dir_dentry->d_inode, lower_dentry, mode, NULL); rc = vfs_create(lower_dir_dentry->d_inode, lower_dentry, mode, true);
if (rc) { if (rc) {
printk(KERN_ERR "%s: Failure to create dentry in lower fs; " printk(KERN_ERR "%s: Failure to create dentry in lower fs; "
"rc = [%d]\n", __func__, rc); "rc = [%d]\n", __func__, rc);
......
...@@ -2079,7 +2079,7 @@ void unlock_rename(struct dentry *p1, struct dentry *p2) ...@@ -2079,7 +2079,7 @@ void unlock_rename(struct dentry *p1, struct dentry *p2)
} }
int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
struct nameidata *nd) bool want_excl)
{ {
int error = may_create(dir, dentry); int error = may_create(dir, dentry);
if (error) if (error)
...@@ -2092,7 +2092,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, ...@@ -2092,7 +2092,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
error = security_inode_create(dir, dentry, mode); error = security_inode_create(dir, dentry, mode);
if (error) if (error)
return error; return error;
error = dir->i_op->create(dir, dentry, mode, !nd || (nd->flags & LOOKUP_EXCL)); error = dir->i_op->create(dir, dentry, mode, want_excl);
if (!error) if (!error)
fsnotify_create(dir, dentry); fsnotify_create(dir, dentry);
return error; return error;
...@@ -2396,7 +2396,8 @@ static int lookup_open(struct nameidata *nd, struct path *path, ...@@ -2396,7 +2396,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
error = security_path_mknod(&nd->path, dentry, mode, 0); error = security_path_mknod(&nd->path, dentry, mode, 0);
if (error) if (error)
goto out_dput; goto out_dput;
error = vfs_create(dir->d_inode, dentry, mode, nd); error = vfs_create(dir->d_inode, dentry, mode,
nd->flags & LOOKUP_EXCL);
if (error) if (error)
goto out_dput; goto out_dput;
} }
...@@ -2883,7 +2884,7 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, ...@@ -2883,7 +2884,7 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,
goto out_drop_write; goto out_drop_write;
switch (mode & S_IFMT) { switch (mode & S_IFMT) {
case 0: case S_IFREG: case 0: case S_IFREG:
error = vfs_create(path.dentry->d_inode,dentry,mode,NULL); error = vfs_create(path.dentry->d_inode,dentry,mode,true);
break; break;
case S_IFCHR: case S_IFBLK: case S_IFCHR: case S_IFBLK:
error = vfs_mknod(path.dentry->d_inode,dentry,mode, error = vfs_mknod(path.dentry->d_inode,dentry,mode,
......
...@@ -1329,7 +1329,7 @@ nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp, ...@@ -1329,7 +1329,7 @@ nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
err = 0; err = 0;
switch (type) { switch (type) {
case S_IFREG: case S_IFREG:
host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); host_err = vfs_create(dirp, dchild, iap->ia_mode, true);
if (!host_err) if (!host_err)
nfsd_check_ignore_resizing(iap); nfsd_check_ignore_resizing(iap);
break; break;
...@@ -1492,7 +1492,7 @@ do_nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp, ...@@ -1492,7 +1492,7 @@ do_nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
goto out; goto out;
} }
host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); host_err = vfs_create(dirp, dchild, iap->ia_mode, true);
if (host_err < 0) { if (host_err < 0) {
fh_drop_write(fhp); fh_drop_write(fhp);
goto out_nfserr; goto out_nfserr;
......
...@@ -1571,7 +1571,7 @@ extern void unlock_super(struct super_block *); ...@@ -1571,7 +1571,7 @@ extern void unlock_super(struct super_block *);
/* /*
* VFS helper functions.. * VFS helper functions..
*/ */
extern int vfs_create(struct inode *, struct dentry *, umode_t, struct nameidata *); extern int vfs_create(struct inode *, struct dentry *, umode_t, bool);
extern int vfs_mkdir(struct inode *, struct dentry *, umode_t); extern int vfs_mkdir(struct inode *, struct dentry *, umode_t);
extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t); extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t);
extern int vfs_symlink(struct inode *, struct dentry *, const char *); extern int vfs_symlink(struct inode *, struct dentry *, const char *);
......
...@@ -751,7 +751,7 @@ static struct file *do_create(struct ipc_namespace *ipc_ns, struct dentry *dir, ...@@ -751,7 +751,7 @@ static struct file *do_create(struct ipc_namespace *ipc_ns, struct dentry *dir,
ret = mnt_want_write(ipc_ns->mq_mnt); ret = mnt_want_write(ipc_ns->mq_mnt);
if (ret) if (ret)
goto out; goto out;
ret = vfs_create(dir->d_inode, dentry, mode, NULL); ret = vfs_create(dir->d_inode, dentry, mode, true);
dentry->d_fsdata = NULL; dentry->d_fsdata = NULL;
if (ret) if (ret)
goto out_drop_write; goto out_drop_write;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment