aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-10 18:09:36 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-14 08:34:50 -0400
commit312b63fba9e88a0dcf800834b8ede8716bcc1e17 (patch)
treea069e3b9ff142912fd09f09a22466707d31c6812 /fs
parentebfc3b49a7ac25920cb5be5445f602e51d2ea559 (diff)
don't pass nameidata * to vfs_create()
all we want is a boolean flag, same as the method gets now Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/cachefiles/namei.c2
-rw-r--r--fs/ecryptfs/inode.c2
-rw-r--r--fs/namei.c9
-rw-r--r--fs/nfsd/vfs.c4
4 files changed, 9 insertions, 8 deletions
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index 7f0771d3894e..b0b5f7cdfffa 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -567,7 +567,7 @@ lookup_again:
567 if (ret < 0) 567 if (ret < 0)
568 goto create_error; 568 goto create_error;
569 start = jiffies; 569 start = jiffies;
570 ret = vfs_create(dir->d_inode, next, S_IFREG, NULL); 570 ret = vfs_create(dir->d_inode, next, S_IFREG, true);
571 cachefiles_hist(cachefiles_create_histogram, start); 571 cachefiles_hist(cachefiles_create_histogram, start);
572 if (ret < 0) 572 if (ret < 0)
573 goto create_error; 573 goto create_error;
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index f079dafea75a..da52cdbe8388 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -173,7 +173,7 @@ ecryptfs_do_create(struct inode *directory_inode,
173 inode = ERR_CAST(lower_dir_dentry); 173 inode = ERR_CAST(lower_dir_dentry);
174 goto out; 174 goto out;
175 } 175 }
176 rc = vfs_create(lower_dir_dentry->d_inode, lower_dentry, mode, NULL); 176 rc = vfs_create(lower_dir_dentry->d_inode, lower_dentry, mode, true);
177 if (rc) { 177 if (rc) {
178 printk(KERN_ERR "%s: Failure to create dentry in lower fs; " 178 printk(KERN_ERR "%s: Failure to create dentry in lower fs; "
179 "rc = [%d]\n", __func__, rc); 179 "rc = [%d]\n", __func__, rc);
diff --git a/fs/namei.c b/fs/namei.c
index fd71156bfd74..ffcd4e114b6e 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2079,7 +2079,7 @@ void unlock_rename(struct dentry *p1, struct dentry *p2)
2079} 2079}
2080 2080
2081int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, 2081int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
2082 struct nameidata *nd) 2082 bool want_excl)
2083{ 2083{
2084 int error = may_create(dir, dentry); 2084 int error = may_create(dir, dentry);
2085 if (error) 2085 if (error)
@@ -2092,7 +2092,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
2092 error = security_inode_create(dir, dentry, mode); 2092 error = security_inode_create(dir, dentry, mode);
2093 if (error) 2093 if (error)
2094 return error; 2094 return error;
2095 error = dir->i_op->create(dir, dentry, mode, !nd || (nd->flags & LOOKUP_EXCL)); 2095 error = dir->i_op->create(dir, dentry, mode, want_excl);
2096 if (!error) 2096 if (!error)
2097 fsnotify_create(dir, dentry); 2097 fsnotify_create(dir, dentry);
2098 return error; 2098 return error;
@@ -2396,7 +2396,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
2396 error = security_path_mknod(&nd->path, dentry, mode, 0); 2396 error = security_path_mknod(&nd->path, dentry, mode, 0);
2397 if (error) 2397 if (error)
2398 goto out_dput; 2398 goto out_dput;
2399 error = vfs_create(dir->d_inode, dentry, mode, nd); 2399 error = vfs_create(dir->d_inode, dentry, mode,
2400 nd->flags & LOOKUP_EXCL);
2400 if (error) 2401 if (error)
2401 goto out_dput; 2402 goto out_dput;
2402 } 2403 }
@@ -2883,7 +2884,7 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,
2883 goto out_drop_write; 2884 goto out_drop_write;
2884 switch (mode & S_IFMT) { 2885 switch (mode & S_IFMT) {
2885 case 0: case S_IFREG: 2886 case 0: case S_IFREG:
2886 error = vfs_create(path.dentry->d_inode,dentry,mode,NULL); 2887 error = vfs_create(path.dentry->d_inode,dentry,mode,true);
2887 break; 2888 break;
2888 case S_IFCHR: case S_IFBLK: 2889 case S_IFCHR: case S_IFBLK:
2889 error = vfs_mknod(path.dentry->d_inode,dentry,mode, 2890 error = vfs_mknod(path.dentry->d_inode,dentry,mode,
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index c8bd9c3be7f7..05d9eee6be3a 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1329,7 +1329,7 @@ nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
1329 err = 0; 1329 err = 0;
1330 switch (type) { 1330 switch (type) {
1331 case S_IFREG: 1331 case S_IFREG:
1332 host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); 1332 host_err = vfs_create(dirp, dchild, iap->ia_mode, true);
1333 if (!host_err) 1333 if (!host_err)
1334 nfsd_check_ignore_resizing(iap); 1334 nfsd_check_ignore_resizing(iap);
1335 break; 1335 break;
@@ -1492,7 +1492,7 @@ do_nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
1492 goto out; 1492 goto out;
1493 } 1493 }
1494 1494
1495 host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); 1495 host_err = vfs_create(dirp, dchild, iap->ia_mode, true);
1496 if (host_err < 0) { 1496 if (host_err < 0) {
1497 fh_drop_write(fhp); 1497 fh_drop_write(fhp);
1498 goto out_nfserr; 1498 goto out_nfserr;