On 26.08.19 г. 16:03 ч., Qu Wenruo wrote:
>
>
> On 2019/8/26 下午8:37, Nikolay Borisov wrote:
>> Support for asynchronous snapshot creation was originally added in
>> 72fd032e9424 ("Btrfs: add SNAP_CREATE_ASYNC ioctl") to cater for
>> ceph's backend needs. However, since Ceph has deprecated support for
>> btrfs
>
> Any reference for that?
>
> From what I have read, btrfs is still supported, although only
> recommended for testing/development.
> From ceph filesystem recommendations:
The principal author of btrfs (and funnily enough, original implementer
of the async subvolume) says so himself:
http://lists.ceph.com/pipermail/ceph-users-ceph.com/2017-July/019095.html:
On 06/30/2017 06:48 PM, Sage Weil wrote:
> Ah, crap. This is what happens when devs don't read their own
> documetnation. I recommend against btrfs every time it ever comes
> up, the downstream distributions all support only xfs, but yes, it
> looks like the docs never got updated... despite the xfs focus being
> 5ish years old now.
>
> We used to recommend btrfs for testing, development, and any
> non-critical deployments becuase it has the most promising set of
> features. However, we now plan to avoid using a kernel file system
> entirely with the new BlueStore backend. btrfs is still supported and
> has a comparatively compelling set of features, but be mindful of its
> stability and support status in your Linux distribution.
>
> (Anyway, still better than the not recommended ext4).
>
> Thanks,
> Qu
>
>> there is no longer need for that support in btrfs. Additionally,
>> this was never supported by btrfs-progs, the official userspace tools.
>>
>> Signed-off-by: Nikolay Borisov <nborisov@xxxxxxxx>
>> ---
>> fs/btrfs/ioctl.c | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
>> index c343f72a84d5..a412bd2036bb 100644
>> --- a/fs/btrfs/ioctl.c
>> +++ b/fs/btrfs/ioctl.c
>> @@ -1837,8 +1837,12 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
>> goto free_args;
>> }
>>
>> - if (vol_args->flags & BTRFS_SUBVOL_CREATE_ASYNC)
>> + if (vol_args->flags & BTRFS_SUBVOL_CREATE_ASYNC) {
>> + pr_warn("BTRFS: async snapshot creation is deprecated and will"
>> + " be removed in kernel 5.7\n");
>> +
>> ptr = &transid;
>> + }
>> if (vol_args->flags & BTRFS_SUBVOL_RDONLY)
>> readonly = true;
>> if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
>> @@ -4214,6 +4218,10 @@ static noinline long btrfs_ioctl_start_sync(struct btrfs_root *root,
>> u64 transid;
>> int ret;
>>
>> +
>> + pr_warn("BTRFS: START_SYNC ioctl is deprecated and will be removed in "
>> + "kernel 5.7\n");
>> +
>> trans = btrfs_attach_transaction_barrier(root);
>> if (IS_ERR(trans)) {
>> if (PTR_ERR(trans) != -ENOENT)
>> @@ -4241,6 +4249,9 @@ static noinline long btrfs_ioctl_wait_sync(struct btrfs_fs_info *fs_info,
>> {
>> u64 transid;
>>
>> + pr_warn("BTRFS: WAIT_SYNC ioctl is deprecated and will be removed in "
>> + "kernel 5.7\n");
>> +
>> if (argp) {
>> if (copy_from_user(&transid, argp, sizeof(transid)))
>> return -EFAULT;
>>
>