9p: v9fs_fid_add() can't fail now
Al Viro [Thu, 28 Feb 2013 06:18:14 +0000 (01:18 -0500)]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

fs/9p/fid.c
fs/9p/fid.h
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c

index ddf6189..73ca550 100644 (file)
  *
  */
 
-int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid)
+void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid)
 {
        spin_lock(&dentry->d_lock);
        hlist_add_head(&fid->dlist, (struct hlist_head *)&dentry->d_fsdata);
        spin_unlock(&dentry->d_lock);
-       return 0;
 }
 
 /**
index 377eb6f..2b6787f 100644 (file)
@@ -25,6 +25,6 @@
 
 struct p9_fid *v9fs_fid_lookup(struct dentry *dentry);
 struct p9_fid *v9fs_fid_clone(struct dentry *dentry);
-int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
+void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
 struct p9_fid *v9fs_writeback_fid(struct dentry *dentry);
 #endif
index b5340c8..ce601d7 100644 (file)
@@ -692,9 +692,7 @@ v9fs_create(struct v9fs_session_info *v9ses, struct inode *dir,
                                   "inode creation failed %d\n", err);
                        goto error;
                }
-               err = v9fs_fid_add(dentry, fid);
-               if (err < 0)
-                       goto error;
+               v9fs_fid_add(dentry, fid);
                d_instantiate(dentry, inode);
        }
        return ofid;
@@ -830,9 +828,7 @@ struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
                inode = NULL;
                goto error;
        }
-       result = v9fs_fid_add(dentry, fid);
-       if (result < 0)
-               goto error_iput;
+       v9fs_fid_add(dentry, fid);
 inst_out:
        /*
         * If we had a rename on the server and a parallel lookup
@@ -845,7 +841,6 @@ inst_out:
        if (!IS_ERR(res))
                return res;
        result = PTR_ERR(res);
-error_iput:
        iput(inode);
 error:
        p9_client_clunk(fid);
index 61e4fa7..53687bb 100644 (file)
@@ -333,9 +333,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry,
        /* Now set the ACL based on the default value */
        v9fs_set_create_acl(inode, fid, dacl, pacl);
 
-       err = v9fs_fid_add(dentry, fid);
-       if (err < 0)
-               goto error;
+       v9fs_fid_add(dentry, fid);
        d_instantiate(dentry, inode);
 
        v9inode = V9FS_I(inode);
@@ -453,12 +451,11 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir,
                                 err);
                        goto error;
                }
-               err = v9fs_fid_add(dentry, fid);
-               if (err < 0)
-                       goto error;
+               v9fs_fid_add(dentry, fid);
                v9fs_set_create_acl(inode, fid, dacl, pacl);
                d_instantiate(dentry, inode);
                fid = NULL;
+               err = 0;
        } else {
                /*
                 * Not in cached mode. No need to populate
@@ -747,11 +744,10 @@ v9fs_vfs_symlink_dotl(struct inode *dir, struct dentry *dentry,
                                 err);
                        goto error;
                }
-               err = v9fs_fid_add(dentry, fid);
-               if (err < 0)
-                       goto error;
+               v9fs_fid_add(dentry, fid);
                d_instantiate(dentry, inode);
                fid = NULL;
+               err = 0;
        } else {
                /* Not in cached mode. No need to populate inode with stat */
                inode = v9fs_get_inode(dir->i_sb, S_IFLNK, 0);
@@ -900,11 +896,10 @@ v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode,
                        goto error;
                }
                v9fs_set_create_acl(inode, fid, dacl, pacl);
-               err = v9fs_fid_add(dentry, fid);
-               if (err < 0)
-                       goto error;
+               v9fs_fid_add(dentry, fid);
                d_instantiate(dentry, inode);
                fid = NULL;
+               err = 0;
        } else {
                /*
                 * Not in cached mode. No need to populate inode with stat.