Rename BTRFS_DEVICE_BY_ID so it's more descriptive that we specify the device by id, it'll be part of the public API. The mask of supported flags is also renamed, only for internal use. The error code for unknown flags is EOPNOTSUPP, fixed.
Unified · Split
| @@ -2687,8 +2687,8 @@ static long btrfs_ioctl_rm_dev_v2(struct file *file, void __user *arg) · 2686 unmodified lines | |||
| 2687 | } | 2687 | } |
| 2688 | 2688 | ||
| 2689 | /* Check for compatibility reject unknown flags */ | 2689 | /* Check for compatibility reject unknown flags */ |
| 2690 | if (vol_args->flags & ~BTRFS_VOL_ARG_V2_FLAGS) | 2690 | if (vol_args->flags & ~BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED) |
| 2691 | return -ENOTTY; | 2691 | return -EOPNOTSUPP; |
| 2692 | 2692 | ||
| 2693 | if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, | 2693 | if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, |
| 2694 | 1)) { | 2694 | 1)) { |
| @@ -2697,7 +2697,7 @@ static long btrfs_ioctl_rm_dev_v2(struct file *file, void __user *arg) · 2 unmodified lines | |||
| 2697 | } | 2697 | } |
| 2698 | 2698 | ||
| 2699 | mutex_lock(&root->fs_info->volume_mutex); | 2699 | mutex_lock(&root->fs_info->volume_mutex); |
| 2700 | if (vol_args->flags & BTRFS_DEVICE_BY_ID) { | 2700 | if (vol_args->flags & BTRFS_DEVICE_SPEC_BY_ID) { |
| 2701 | ret = btrfs_rm_device(root, NULL, vol_args->devid); | 2701 | ret = btrfs_rm_device(root, NULL, vol_args->devid); |
| 2702 | } else { | 2702 | } else { |
| 2703 | vol_args->name[BTRFS_SUBVOL_NAME_MAX] = '\0'; | 2703 | vol_args->name[BTRFS_SUBVOL_NAME_MAX] = '\0'; |
| @@ -2707,7 +2707,7 @@ static long btrfs_ioctl_rm_dev_v2(struct file *file, void __user *arg) · 3 unmodified lines | |||
| 2707 | atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); | 2707 | atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); |
| 2708 | 2708 | ||
| 2709 | if (!ret) { | 2709 | if (!ret) { |
| 2710 | if (vol_args->flags & BTRFS_DEVICE_BY_ID) | 2710 | if (vol_args->flags & BTRFS_DEVICE_SPEC_BY_ID) |
| 2711 | btrfs_info(root->fs_info, "device deleted: id %llu", | 2711 | btrfs_info(root->fs_info, "device deleted: id %llu", |
| 2712 | vol_args->devid); | 2712 | vol_args->devid); |
| 2713 | else | 2713 | else |
| @@ -36,12 +36,13 @@ struct btrfs_ioctl_vol_args { · 35 unmodified lines | |||
| 36 | #define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) | 36 | #define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) |
| 37 | #define BTRFS_SUBVOL_RDONLY (1ULL << 1) | 37 | #define BTRFS_SUBVOL_RDONLY (1ULL << 1) |
| 38 | #define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) | 38 | #define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) |
| 39 | #define BTRFS_DEVICE_BY_ID (1ULL << 3) | 39 | #define BTRFS_DEVICE_SPEC_BY_ID (1ULL << 3) |
| 40 | #define BTRFS_VOL_ARG_V2_FLAGS \ | 40 | |
| 41 | #define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED \ | ||
| 41 | (BTRFS_SUBVOL_CREATE_ASYNC | \ | 42 | (BTRFS_SUBVOL_CREATE_ASYNC | \ |
| 42 | BTRFS_SUBVOL_RDONLY | \ | 43 | BTRFS_SUBVOL_RDONLY | \ |
| 43 | BTRFS_SUBVOL_QGROUP_INHERIT | \ | 44 | BTRFS_SUBVOL_QGROUP_INHERIT | \ |
| 44 | BTRFS_DEVICE_BY_ID) | 45 | BTRFS_DEVICE_SPEC_BY_ID) |
| 45 | 46 | ||
| 46 | #define BTRFS_FSID_SIZE 16 | 47 | #define BTRFS_FSID_SIZE 16 |
| 47 | #define BTRFS_UUID_SIZE 16 | 48 | #define BTRFS_UUID_SIZE 16 |