]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: remove pointless out labels from ioctl.c
authorFilipe Manana <fdmanana@suse.com>
Tue, 20 Jan 2026 11:25:31 +0000 (11:25 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:56:20 +0000 (07:56 +0100)
Some functions (__btrfs_ioctl_snap_create(), btrfs_ioctl_subvol_setflags()
and copy_to_sk()) have an 'out' label that does nothing but return, making
it pointless. Simplify this by removing the label and returning instead of
gotos plus setting up the 'ret' variable.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index d9e7dd31767047b08b20140b74a613e6bd25759e..f1b56be6f8f46e0df27c37880c92e73703d7b417 100644 (file)
@@ -1176,7 +1176,7 @@ static noinline int __btrfs_ioctl_snap_create(struct file *file,
                                bool readonly,
                                struct btrfs_qgroup_inherit *inherit)
 {
-       int ret = 0;
+       int ret;
        struct qstr qname = QSTR_INIT(name, strlen(name));
 
        if (!S_ISDIR(file_inode(file)->i_mode))
@@ -1184,7 +1184,7 @@ static noinline int __btrfs_ioctl_snap_create(struct file *file,
 
        ret = mnt_want_write_file(file);
        if (ret)
-               goto out;
+               return ret;
 
        if (strchr(name, '/')) {
                ret = -EINVAL;
@@ -1236,7 +1236,6 @@ static noinline int __btrfs_ioctl_snap_create(struct file *file,
        }
 out_drop_write:
        mnt_drop_write_file(file);
-out:
        return ret;
 }
 
@@ -1352,14 +1351,14 @@ static noinline int btrfs_ioctl_subvol_setflags(struct file *file,
        struct btrfs_trans_handle *trans;
        u64 root_flags;
        u64 flags;
-       int ret = 0;
+       int ret;
 
        if (!inode_owner_or_capable(file_mnt_idmap(file), inode))
                return -EPERM;
 
        ret = mnt_want_write_file(file);
        if (ret)
-               goto out;
+               return ret;
 
        if (btrfs_ino(BTRFS_I(inode)) != BTRFS_FIRST_FREE_OBJECTID) {
                ret = -EINVAL;
@@ -1428,7 +1427,6 @@ out_drop_sem:
        up_write(&fs_info->subvol_sem);
 out_drop_write:
        mnt_drop_write_file(file);
-out:
        return ret;
 }
 
@@ -1494,10 +1492,8 @@ static noinline int copy_to_sk(struct btrfs_path *path,
                        continue;
 
                if (sizeof(sh) + item_len > *buf_size) {
-                       if (*num_found) {
-                               ret = 1;
-                               goto out;
-                       }
+                       if (*num_found)
+                               return 1;
 
                        /*
                         * return one empty item back for v1, which does not
@@ -1509,10 +1505,8 @@ static noinline int copy_to_sk(struct btrfs_path *path,
                        ret = -EOVERFLOW;
                }
 
-               if (sizeof(sh) + item_len + *sk_offset > *buf_size) {
-                       ret = 1;
-                       goto out;
-               }
+               if (sizeof(sh) + item_len + *sk_offset > *buf_size)
+                       return 1;
 
                sh.objectid = key->objectid;
                sh.type = key->type;
@@ -1526,10 +1520,8 @@ static noinline int copy_to_sk(struct btrfs_path *path,
                 * problem. Otherwise we'll fault and then copy the buffer in
                 * properly this next time through
                 */
-               if (copy_to_user_nofault(ubuf + *sk_offset, &sh, sizeof(sh))) {
-                       ret = 0;
-                       goto out;
-               }
+               if (copy_to_user_nofault(ubuf + *sk_offset, &sh, sizeof(sh)))
+                       return 0;
 
                *sk_offset += sizeof(sh);
 
@@ -1541,22 +1533,20 @@ static noinline int copy_to_sk(struct btrfs_path *path,
                         */
                        if (read_extent_buffer_to_user_nofault(leaf, up,
                                                item_off, item_len)) {
-                               ret = 0;
                                *sk_offset -= sizeof(sh);
-                               goto out;
+                               return 0;
                        }
 
                        *sk_offset += item_len;
                }
                (*num_found)++;
 
-               if (ret) /* -EOVERFLOW from above */
-                       goto out;
+               /* -EOVERFLOW from above. */
+               if (ret)
+                       return ret;
 
-               if (*num_found >= sk->nr_items) {
-                       ret = 1;
-                       goto out;
-               }
+               if (*num_found >= sk->nr_items)
+                       return 1;
        }
 advance_key:
        ret = 0;
@@ -1576,7 +1566,7 @@ advance_key:
                key->objectid++;
        } else
                ret = 1;
-out:
+
        /*
         *  0: all items from this leaf copied, continue with next
         *  1: * more items can be copied, but unused buffer is too small