* [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
@ 2019-08-26 12:37 Nikolay Borisov
2019-08-26 13:03 ` Qu Wenruo
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Nikolay Borisov @ 2019-08-26 12:37 UTC (permalink / raw)
To: linux-btrfs; +Cc: Nikolay Borisov
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 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@suse.com>
---
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;
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 12:37 [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag Nikolay Borisov
@ 2019-08-26 13:03 ` Qu Wenruo
2019-08-26 13:08 ` Nikolay Borisov
2019-08-26 13:30 ` Johannes Thumshirn
2019-08-26 14:10 ` David Sterba
2 siblings, 1 reply; 8+ messages in thread
From: Qu Wenruo @ 2019-08-26 13:03 UTC (permalink / raw)
To: Nikolay Borisov, linux-btrfs
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:
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@suse.com>
> ---
> 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;
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 13:03 ` Qu Wenruo
@ 2019-08-26 13:08 ` Nikolay Borisov
2019-08-26 13:34 ` Qu Wenruo
0 siblings, 1 reply; 8+ messages in thread
From: Nikolay Borisov @ 2019-08-26 13:08 UTC (permalink / raw)
To: Qu Wenruo, linux-btrfs
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@suse.com>
>> ---
>> 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;
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 12:37 [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag Nikolay Borisov
2019-08-26 13:03 ` Qu Wenruo
@ 2019-08-26 13:30 ` Johannes Thumshirn
2019-08-26 14:10 ` David Sterba
2 siblings, 0 replies; 8+ messages in thread
From: Johannes Thumshirn @ 2019-08-26 13:30 UTC (permalink / raw)
To: Nikolay Borisov, linux-btrfs
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
--
Johannes Thumshirn SUSE Labs Filesystems
jthumshirn@suse.de +49 911 74053 689
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5
90409 Nürnberg
Germany
(HRB 247165, AG München)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 13:08 ` Nikolay Borisov
@ 2019-08-26 13:34 ` Qu Wenruo
0 siblings, 0 replies; 8+ messages in thread
From: Qu Wenruo @ 2019-08-26 13:34 UTC (permalink / raw)
To: Nikolay Borisov, linux-btrfs
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@suse.com>
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@suse.com>
>>> ---
>>> 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;
>>>
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 12:37 [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag Nikolay Borisov
2019-08-26 13:03 ` Qu Wenruo
2019-08-26 13:30 ` Johannes Thumshirn
@ 2019-08-26 14:10 ` David Sterba
2019-08-26 14:34 ` [PATCH v2] " Nikolay Borisov
2 siblings, 1 reply; 8+ messages in thread
From: David Sterba @ 2019-08-26 14:10 UTC (permalink / raw)
To: Nikolay Borisov; +Cc: linux-btrfs
On Mon, Aug 26, 2019 at 03:37:28PM +0300, 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 there is no longer need for that support in btrfs. Additionally,
> this was never supported by btrfs-progs, the official userspace tools.
As there were some questions, changelog could link to the mails that
explain why ceph is not intrested anymore.
> @@ -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"
Why not btrfs_warn? pr_warn lacks identification of the filesystem. I'd
also write shortened identifiers of the ioctl and flags. 'async
snapshot' sounds cryptic and it might be hard to actually find what's
the actual source line implementing it.
Though we all know there are no users left, the deprecation process
assumes there are and should make it possible to notice and update the
affected code.
btrfs_warn("SNAP_CREATE_V2 ioctl with CREATE_ASYNC is deprecated and will be removed in ...")
> + " be removed in kernel 5.7\n");
> + pr_warn("BTRFS: START_SYNC ioctl is deprecated and will be removed in "
> + "kernel 5.7\n");
> + pr_warn("BTRFS: WAIT_SYNC ioctl is deprecated and will be removed in "
> + "kernel 5.7\n");
Yeah, like here the ioctl is sufficiently described.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 14:10 ` David Sterba
@ 2019-08-26 14:34 ` Nikolay Borisov
2019-08-26 15:05 ` David Sterba
0 siblings, 1 reply; 8+ messages in thread
From: Nikolay Borisov @ 2019-08-26 14:34 UTC (permalink / raw)
To: linux-btrfs, dsterba; +Cc: Nikolay Borisov
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 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@suse.com>
---
V2:
* Switch to using btrfs_warn to make it more explicit and easily recognisable
it's a btrfs-sourced warning
* Reword the SNAP_CREATE_V2 deprecation warning to make it easier to spot
which ioctl is deprecated.
fs/btrfs/ioctl.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index c343f72a84d5..185b757f6cb6 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1837,8 +1837,14 @@ 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) {
+ 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\n");
+
ptr = &transid;
+ }
if (vol_args->flags & BTRFS_SUBVOL_RDONLY)
readonly = true;
if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
@@ -4214,6 +4220,10 @@ static noinline long btrfs_ioctl_start_sync(struct btrfs_root *root,
u64 transid;
int ret;
+
+ btrfs_warn(root->fs_info, "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 +4251,9 @@ static noinline long btrfs_ioctl_wait_sync(struct btrfs_fs_info *fs_info,
{
u64 transid;
+ btrfs_warn(fs_info, "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;
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
2019-08-26 14:34 ` [PATCH v2] " Nikolay Borisov
@ 2019-08-26 15:05 ` David Sterba
0 siblings, 0 replies; 8+ messages in thread
From: David Sterba @ 2019-08-26 15:05 UTC (permalink / raw)
To: Nikolay Borisov; +Cc: linux-btrfs, dsterba
On Mon, Aug 26, 2019 at 05:34:24PM +0300, 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 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@suse.com>
Added to misc-next, thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-08-26 15:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-26 12:37 [PATCH] btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag Nikolay Borisov
2019-08-26 13:03 ` Qu Wenruo
2019-08-26 13:08 ` Nikolay Borisov
2019-08-26 13:34 ` Qu Wenruo
2019-08-26 13:30 ` Johannes Thumshirn
2019-08-26 14:10 ` David Sterba
2019-08-26 14:34 ` [PATCH v2] " Nikolay Borisov
2019-08-26 15:05 ` David Sterba
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.