btrfs: get rid of btrfs_add_nondir()
authorOmar Sandoval <osandov@fb.com>
Thu, 10 Mar 2022 01:31:34 +0000 (17:31 -0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:06 +0000 (17:03 +0200)
This is a trivial wrapper around btrfs_add_link(). The only thing it
does other than moving arguments around is translating a > 0 return
value to -EEXIST. As far as I can tell, btrfs_add_link() won't return >
0 (and if it did, the existing callsites in, e.g., btrfs_mkdir() would
be broken). The check itself dates back to commit 2c90e5d65842 ("Btrfs:
still corruption hunting"), so it's probably left over from debugging.
Let's just get rid of btrfs_add_nondir().

Reviewed-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index c320995..46a82fb 100644 (file)
@@ -6350,18 +6350,6 @@ fail_dir_item:
        return ret;
 }
 
-static int btrfs_add_nondir(struct btrfs_trans_handle *trans,
-                           struct btrfs_inode *dir, struct dentry *dentry,
-                           struct btrfs_inode *inode, int backref, u64 index)
-{
-       int err = btrfs_add_link(trans, dir, inode,
-                                dentry->d_name.name, dentry->d_name.len,
-                                backref, index);
-       if (err > 0)
-               err = -EEXIST;
-       return err;
-}
-
 static int btrfs_mknod(struct user_namespace *mnt_userns, struct inode *dir,
                       struct dentry *dentry, umode_t mode, dev_t rdev)
 {
@@ -6408,8 +6396,8 @@ static int btrfs_mknod(struct user_namespace *mnt_userns, struct inode *dir,
        if (err)
                goto out_unlock;
 
-       err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
-                       0, index);
+       err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
+                            dentry->d_name.name, dentry->d_name.len, 0, index);
        if (err)
                goto out_unlock;
 
@@ -6476,8 +6464,8 @@ static int btrfs_create(struct user_namespace *mnt_userns, struct inode *dir,
        if (err)
                goto out_unlock;
 
-       err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
-                       0, index);
+       err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
+                            dentry->d_name.name, dentry->d_name.len, 0, index);
        if (err)
                goto out_unlock;
 
@@ -6536,8 +6524,8 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
        ihold(inode);
        set_bit(BTRFS_INODE_COPY_EVERYTHING, &BTRFS_I(inode)->runtime_flags);
 
-       err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
-                       1, index);
+       err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
+                            dentry->d_name.name, dentry->d_name.len, 1, index);
 
        if (err) {
                drop_inode = 1;
@@ -9317,8 +9305,8 @@ static int btrfs_whiteout_for_rename(struct btrfs_trans_handle *trans,
        if (ret)
                goto out;
 
-       ret = btrfs_add_nondir(trans, BTRFS_I(dir), dentry,
-                               BTRFS_I(inode), 0, index);
+       ret = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
+                            dentry->d_name.name, dentry->d_name.len, 0, index);
        if (ret)
                goto out;
 
@@ -9856,8 +9844,9 @@ static int btrfs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
         * elsewhere above.
         */
        if (!err)
-               err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry,
-                               BTRFS_I(inode), 0, index);
+               err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
+                                    dentry->d_name.name, dentry->d_name.len, 0,
+                                    index);
        if (err)
                goto out_unlock;