On 2019/8/26 下午9:08, Nikolay Borisov wrote:
>
>
> 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:
OK, still that transid mismatch ghost...
Anyway, the patch itself should be OK, so:
Reviewed-by: Qu Wenruo <wqu@xxxxxxxx>
Thanks,
Qu
>
> 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;
>>>
>>