@@ -2672,7 +2672,7 @@ out:
static long btrfs_ioctl_rm_dev_v2(struct file *file, void __user *arg)
{
struct btrfs_root *root = BTRFS_I(file_inode(file))->root;
- struct btrfs_ioctl_vol_args_v2 *vol_args;
+ struct btrfs_ioctl_vol_args_v3 *vol_args;
int ret;
if (!capable(CAP_SYS_ADMIN))
@@ -90,6 +90,23 @@ struct btrfs_ioctl_vol_args_v2 {
};
};
+struct btrfs_ioctl_vol_args_v3 {
+ __s64 fd;
+ __u64 transid;
+ __u64 flags;
+ union {
+ struct {
+ __u64 size;
+ struct btrfs_qgroup_inherit __user *qgroup_inherit;
+ };
+ __u64 unused[4];
+ };
+ union {
+ char name[BTRFS_PATH_NAME_MAX + 1];
+ u64 devid;
+ };
+};
+
/*
* structure to report errors and progress to userspace, either as a
* result of a finished scrub, a canceled scrub or a progress inquiry
@@ -671,6 +688,6 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
#define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
struct btrfs_ioctl_feature_flags[3])
#define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, \
- struct btrfs_ioctl_vol_args_v2)
+ struct btrfs_ioctl_vol_args_v3)
#endif /* _UAPI_LINUX_BTRFS_H */
Add device ioctl uses BTRFS_PATH_NAME_MAX however delete uses BTRFS_SUBVOL_NAME_MAX for device path. This patch makes them consistent. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- fs/btrfs/ioctl.c | 2 +- include/uapi/linux/btrfs.h | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-)