diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-10 18:09:36 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-14 08:34:50 -0400 |
commit | 312b63fba9e88a0dcf800834b8ede8716bcc1e17 (patch) | |
tree | a069e3b9ff142912fd09f09a22466707d31c6812 /fs | |
parent | ebfc3b49a7ac25920cb5be5445f602e51d2ea559 (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.c | 2 | ||||
-rw-r--r-- | fs/ecryptfs/inode.c | 2 | ||||
-rw-r--r-- | fs/namei.c | 9 | ||||
-rw-r--r-- | fs/nfsd/vfs.c | 4 |
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 | ||
2081 | int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, | 2081 | int 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; |