btrfs: disable the device add feature for temp-fsid
authorAnand Jain <anand.jain@oracle.com>
Wed, 4 Oct 2023 15:00:26 +0000 (23:00 +0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:18 +0000 (16:44 +0200)
The device addition operation will transform the cloned temp-fsid mounted
device into a multi-device filesystem. Therefore, it is marked as
unsupported.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index ab4ddbebeb16a2c9dfca2432903a0f58af87b4a1..89cd212735ea67a28869d05281fa08b7818ac212 100644 (file)
@@ -2635,6 +2635,12 @@ static long btrfs_ioctl_add_dev(struct btrfs_fs_info *fs_info, void __user *arg)
                return -EINVAL;
        }
 
+       if (fs_info->fs_devices->temp_fsid) {
+               btrfs_err(fs_info,
+                         "device add not supported on cloned temp-fsid mount");
+               return -EINVAL;
+       }
+
        if (!btrfs_exclop_start(fs_info, BTRFS_EXCLOP_DEV_ADD)) {
                if (!btrfs_exclop_start_try_lock(fs_info, BTRFS_EXCLOP_DEV_ADD))
                        return BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS;