Commit dd7dd556 authored by Al Viro's avatar Al Viro

no need to check for LOOKUP_OPEN in ->create() instances

... it will be set in nd->flag for all cases with non-NULL nd
(i.e. when called from do_last()).
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent bf6c7f6c
...@@ -633,7 +633,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode, ...@@ -633,7 +633,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode,
fid = NULL; fid = NULL;
v9ses = v9fs_inode2v9ses(dir); v9ses = v9fs_inode2v9ses(dir);
perm = unixmode2p9mode(v9ses, mode); perm = unixmode2p9mode(v9ses, mode);
if (nd && nd->flags & LOOKUP_OPEN) if (nd)
flags = nd->intent.open.flags; flags = nd->intent.open.flags;
else else
flags = O_RDWR; flags = O_RDWR;
...@@ -649,7 +649,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode, ...@@ -649,7 +649,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode,
v9fs_invalidate_inode_attr(dir); v9fs_invalidate_inode_attr(dir);
/* if we are opening a file, assign the open fid to the file */ /* if we are opening a file, assign the open fid to the file */
if (nd && nd->flags & LOOKUP_OPEN) { if (nd) {
v9inode = V9FS_I(dentry->d_inode); v9inode = V9FS_I(dentry->d_inode);
mutex_lock(&v9inode->v_mutex); mutex_lock(&v9inode->v_mutex);
if (v9ses->cache && !v9inode->writeback_fid && if (v9ses->cache && !v9inode->writeback_fid &&
......
...@@ -173,7 +173,7 @@ v9fs_vfs_create_dotl(struct inode *dir, struct dentry *dentry, int omode, ...@@ -173,7 +173,7 @@ v9fs_vfs_create_dotl(struct inode *dir, struct dentry *dentry, int omode,
struct posix_acl *pacl = NULL, *dacl = NULL; struct posix_acl *pacl = NULL, *dacl = NULL;
v9ses = v9fs_inode2v9ses(dir); v9ses = v9fs_inode2v9ses(dir);
if (nd && nd->flags & LOOKUP_OPEN) if (nd)
flags = nd->intent.open.flags; flags = nd->intent.open.flags;
else { else {
/* /*
......
...@@ -179,7 +179,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, ...@@ -179,7 +179,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
if (oplockEnabled) if (oplockEnabled)
oplock = REQ_OPLOCK; oplock = REQ_OPLOCK;
if (nd && (nd->flags & LOOKUP_OPEN)) if (nd)
oflags = nd->intent.open.file->f_flags; oflags = nd->intent.open.file->f_flags;
else else
oflags = O_RDONLY | O_CREAT; oflags = O_RDONLY | O_CREAT;
...@@ -214,7 +214,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, ...@@ -214,7 +214,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
which should be rare for path not covered on files) */ which should be rare for path not covered on files) */
} }
if (nd && (nd->flags & LOOKUP_OPEN)) { if (nd) {
/* if the file is going to stay open, then we /* if the file is going to stay open, then we
need to set the desired access properly */ need to set the desired access properly */
desiredAccess = 0; desiredAccess = 0;
...@@ -328,7 +328,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, ...@@ -328,7 +328,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
else else
cFYI(1, "Create worked, get_inode_info failed rc = %d", rc); cFYI(1, "Create worked, get_inode_info failed rc = %d", rc);
if (newinode && nd && (nd->flags & LOOKUP_OPEN)) { if (newinode && nd) {
struct cifsFileInfo *pfile_info; struct cifsFileInfo *pfile_info;
struct file *filp; struct file *filp;
......
...@@ -576,7 +576,7 @@ static int fuse_mknod(struct inode *dir, struct dentry *entry, int mode, ...@@ -576,7 +576,7 @@ static int fuse_mknod(struct inode *dir, struct dentry *entry, int mode,
static int fuse_create(struct inode *dir, struct dentry *entry, int mode, static int fuse_create(struct inode *dir, struct dentry *entry, int mode,
struct nameidata *nd) struct nameidata *nd)
{ {
if (nd && (nd->flags & LOOKUP_OPEN)) { if (nd) {
int err = fuse_create_open(dir, entry, mode, nd); int err = fuse_create_open(dir, entry, mode, nd);
if (err != -ENOSYS) if (err != -ENOSYS)
return err; return err;
......
...@@ -1585,7 +1585,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode, ...@@ -1585,7 +1585,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode,
attr.ia_mode = mode; attr.ia_mode = mode;
attr.ia_valid = ATTR_MODE; attr.ia_valid = ATTR_MODE;
if (nd && (nd->flags & LOOKUP_OPEN) != 0) if (nd)
open_flags = nd->intent.open.flags; open_flags = nd->intent.open.flags;
ctx = create_nfs_open_context(dentry, open_flags); ctx = create_nfs_open_context(dentry, open_flags);
...@@ -1596,7 +1596,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode, ...@@ -1596,7 +1596,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode,
error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, ctx); error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, ctx);
if (error != 0) if (error != 0)
goto out_put_ctx; goto out_put_ctx;
if (nd && (nd->flags & LOOKUP_OPEN) != 0) { if (nd) {
error = nfs_intent_set_file(nd, ctx); error = nfs_intent_set_file(nd, ctx);
if (error < 0) if (error < 0)
goto out_err; goto out_err;
...@@ -1675,7 +1675,7 @@ static int nfs_create(struct inode *dir, struct dentry *dentry, int mode, ...@@ -1675,7 +1675,7 @@ static int nfs_create(struct inode *dir, struct dentry *dentry, int mode,
attr.ia_mode = mode; attr.ia_mode = mode;
attr.ia_valid = ATTR_MODE; attr.ia_valid = ATTR_MODE;
if (nd && (nd->flags & LOOKUP_OPEN) != 0) if (nd)
open_flags = nd->intent.open.flags; open_flags = nd->intent.open.flags;
error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, NULL); error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, NULL);
......
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