if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
+       if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) {
+               btrfs_err(fs_info, "device add not supported on extent tree v2 yet");
+               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;
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
+       if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) {
+               btrfs_err(fs_info, "device replace not supported on extent tree v2 yet");
+               return -EINVAL;
+       }
+
        p = memdup_user(arg, sizeof(*p));
        if (IS_ERR(p))
                return PTR_ERR(p);
 
        u64 num_devices;
        int ret = 0;
 
+       if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) {
+               btrfs_err(fs_info, "device remove not supported on extent tree v2 yet");
+               return -EINVAL;
+       }
+
        /*
         * The device list in fs_devices is accessed without locks (neither
         * uuid_mutex nor device_list_mutex) as it won't change on a mounted