OSDN Git Service

btrfs: Remove BTRFS_SUBVOL_CREATE_ASYNC support
authorNikolay Borisov <nborisov@suse.com>
Fri, 13 Mar 2020 15:23:18 +0000 (17:23 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Mar 2020 16:02:00 +0000 (17:02 +0100)
This functionality was deprecated in kernel 5.4. Since no one has
complained of the impending removal it's time we did so.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ add comment ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c
include/uapi/linux/btrfs.h

index f8a73a2..7e09985 100644 (file)
@@ -1818,8 +1818,6 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
 {
        struct btrfs_ioctl_vol_args_v2 *vol_args;
        int ret;
-       u64 transid = 0;
-       u64 *ptr = NULL;
        bool readonly = false;
        struct btrfs_qgroup_inherit *inherit = NULL;
 
@@ -1836,15 +1834,6 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
                goto free_args;
        }
 
-       if (vol_args->flags & BTRFS_SUBVOL_CREATE_ASYNC) {
-               struct inode *inode = file_inode(file);
-               struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
-
-               btrfs_warn(fs_info,
-"SNAP_CREATE_V2 ioctl with CREATE_ASYNC is deprecated and will be removed in kernel 5.7");
-
-               ptr = &transid;
-       }
        if (vol_args->flags & BTRFS_SUBVOL_RDONLY)
                readonly = true;
        if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
@@ -1860,17 +1849,10 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
        }
 
        ret = btrfs_ioctl_snap_create_transid(file, vol_args->name,
-                                             vol_args->fd, subvol, ptr,
+                                             vol_args->fd, subvol, NULL,
                                              readonly, inherit);
        if (ret)
                goto free_inherit;
-
-       if (ptr && copy_to_user(arg +
-                               offsetof(struct btrfs_ioctl_vol_args_v2,
-                                       transid),
-                               ptr, sizeof(*ptr)))
-               ret = -EFAULT;
-
 free_inherit:
        kfree(inherit);
 free_args:
@@ -1929,11 +1911,6 @@ static noinline int btrfs_ioctl_subvol_setflags(struct file *file,
                goto out_drop_write;
        }
 
-       if (flags & BTRFS_SUBVOL_CREATE_ASYNC) {
-               ret = -EINVAL;
-               goto out_drop_write;
-       }
-
        if (flags & ~BTRFS_SUBVOL_RDONLY) {
                ret = -EOPNOTSUPP;
                goto out_drop_write;
index b5f3ea3..8134924 100644 (file)
@@ -36,7 +36,12 @@ struct btrfs_ioctl_vol_args {
 #define BTRFS_DEVICE_PATH_NAME_MAX     1024
 #define BTRFS_SUBVOL_NAME_MAX          4039
 
-#define BTRFS_SUBVOL_CREATE_ASYNC      (1ULL << 0)
+/*
+ * Deprecated since 5.7:
+ *
+ * BTRFS_SUBVOL_CREATE_ASYNC   (1ULL << 0)
+ */
+
 #define BTRFS_SUBVOL_RDONLY            (1ULL << 1)
 #define BTRFS_SUBVOL_QGROUP_INHERIT    (1ULL << 2)
 
@@ -45,8 +50,7 @@ struct btrfs_ioctl_vol_args {
 #define BTRFS_SUBVOL_SPEC_BY_ID        (1ULL << 4)
 
 #define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED               \
-                       (BTRFS_SUBVOL_CREATE_ASYNC |    \
-                       BTRFS_SUBVOL_RDONLY |           \
+                       (BTRFS_SUBVOL_RDONLY |          \
                        BTRFS_SUBVOL_QGROUP_INHERIT |   \
                        BTRFS_DEVICE_SPEC_BY_ID |       \
                        BTRFS_SUBVOL_SPEC_BY_ID)
@@ -116,8 +120,7 @@ struct btrfs_ioctl_qgroup_limit_args {
 
 /* Supported flags for BTRFS_IOC_SNAP_CREATE_V2 and BTRFS_IOC_SUBVOL_CREATE_V2 */
 #define BTRFS_SUBVOL_CREATE_ARGS_MASK                                  \
-       (BTRFS_SUBVOL_CREATE_ASYNC |                                    \
-        BTRFS_SUBVOL_RDONLY |                                          \
+        (BTRFS_SUBVOL_RDONLY |                                         \
         BTRFS_SUBVOL_QGROUP_INHERIT)
 
 /* Supported flags for BTRFS_IOC_SNAP_DESTROY_V2 */