no need to check for LOOKUP_OPEN in ->create() instances
Al Viro [Sun, 26 Jun 2011 01:17:17 +0000 (21:17 -0400)]
... it will be set in nd->flag for all cases with non-NULL nd
(i.e. when called from do_last()).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/cifs/dir.c
fs/fuse/dir.c
fs/nfs/dir.c

index 47f71eb..7f9976a 100644 (file)
@@ -633,7 +633,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode,
        fid = NULL;
        v9ses = v9fs_inode2v9ses(dir);
        perm = unixmode2p9mode(v9ses, mode);
-       if (nd && nd->flags & LOOKUP_OPEN)
+       if (nd)
                flags = nd->intent.open.flags;
        else
                flags = O_RDWR;
@@ -649,7 +649,7 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode,
 
        v9fs_invalidate_inode_attr(dir);
        /* 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);
                mutex_lock(&v9inode->v_mutex);
                if (v9ses->cache && !v9inode->writeback_fid &&
index d148e69..32bbbe5 100644 (file)
@@ -173,7 +173,7 @@ v9fs_vfs_create_dotl(struct inode *dir, struct dentry *dentry, int omode,
        struct posix_acl *pacl = NULL, *dacl = NULL;
 
        v9ses = v9fs_inode2v9ses(dir);
-       if (nd && nd->flags & LOOKUP_OPEN)
+       if (nd)
                flags = nd->intent.open.flags;
        else {
                /*
index fa8c21d..8766149 100644 (file)
@@ -179,7 +179,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
        if (oplockEnabled)
                oplock = REQ_OPLOCK;
 
-       if (nd && (nd->flags & LOOKUP_OPEN))
+       if (nd)
                oflags = nd->intent.open.file->f_flags;
        else
                oflags = O_RDONLY | O_CREAT;
@@ -214,7 +214,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
                   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
                   need to set the desired access properly */
                desiredAccess = 0;
@@ -328,7 +328,7 @@ cifs_create_set_dentry:
        else
                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 file *filp;
 
index 47559dd..02063dd 100644 (file)
@@ -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,
                       struct nameidata *nd)
 {
-       if (nd && (nd->flags & LOOKUP_OPEN)) {
+       if (nd) {
                int err = fuse_create_open(dir, entry, mode, nd);
                if (err != -ENOSYS)
                        return err;
index b5f63a5..77ae95f 100644 (file)
@@ -1585,7 +1585,7 @@ static int nfs_open_create(struct inode *dir, struct dentry *dentry, int mode,
        attr.ia_mode = mode;
        attr.ia_valid = ATTR_MODE;
 
-       if (nd && (nd->flags & LOOKUP_OPEN) != 0)
+       if (nd)
                open_flags = nd->intent.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,
        error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, ctx);
        if (error != 0)
                goto out_put_ctx;
-       if (nd && (nd->flags & LOOKUP_OPEN) != 0) {
+       if (nd) {
                error = nfs_intent_set_file(nd, ctx);
                if (error < 0)
                        goto out_err;
@@ -1675,7 +1675,7 @@ static int nfs_create(struct inode *dir, struct dentry *dentry, int mode,
        attr.ia_mode = mode;
        attr.ia_valid = ATTR_MODE;
 
-       if (nd && (nd->flags & LOOKUP_OPEN) != 0)
+       if (nd)
                open_flags = nd->intent.open.flags;
 
        error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags, NULL);