History

btrfs: rename flags for vol args v2

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.

David Sterba committed 10 years ago

Commit 735654e1 parent 5c5c0df2 files · +8 −7Browse files

Unified · Split

2 files
  1. fs/btrfs/ioctl.c +4 −4
  2. include/uapi/linux/btrfs.h +4 −3
fs/btrfs/ioctl.c+4−4
@@ -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 else2713 else
include/uapi/linux/btrfs.h+4−3
@@ -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 1647#define BTRFS_FSID_SIZE 16
47#define BTRFS_UUID_SIZE 1648#define BTRFS_UUID_SIZE 16