On Tue, May 08, 2018 at 10:06:50PM -0400, Howard McLauchlan wrote: > From: Filipe David Borba Manana <fdman...@gmail.com> > > So that applications can find out what's the highest send stream > version supported/implemented by the running kernel: > > $ cat /sys/fs/btrfs/send/stream_version > 2 > > [Howard: rebased on 4.17-rc4] > Signed-off-by: Howard McLauchlan <hmclauch...@fb.com> > Signed-off-by: Filipe David Borba Manana <fdman...@gmail.com> > Reviewed-by: David Sterba <dste...@suse.cz> > --- > fs/btrfs/send.h | 1 + > fs/btrfs/sysfs.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > > diff --git a/fs/btrfs/send.h b/fs/btrfs/send.h > index a5830d216ac1..2f5e25e03def 100644 > --- a/fs/btrfs/send.h > +++ b/fs/btrfs/send.h > @@ -12,6 +12,7 @@ > #define BTRFS_SEND_STREAM_MAGIC "btrfs-stream" > #define BTRFS_SEND_STREAM_VERSION_1 1 > #define BTRFS_SEND_STREAM_VERSION_2 2 > +#define BTRFS_SEND_STREAM_VERSION_LATEST BTRFS_SEND_STREAM_VERSION_2 > > #define BTRFS_SEND_BUF_SIZE SZ_64K > #define BTRFS_SEND_READ_SIZE (48 * SZ_1K) > diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c > index 4848a4318fb5..3c82cba91ff6 100644 > --- a/fs/btrfs/sysfs.c > +++ b/fs/btrfs/sysfs.c > @@ -18,6 +18,7 @@ > #include "transaction.h" > #include "sysfs.h" > #include "volumes.h" > +#include "send.h" > > static inline struct btrfs_fs_info *to_fs_info(struct kobject *kobj); > static inline struct btrfs_fs_devices *to_fs_devs(struct kobject *kobj); > @@ -884,6 +885,28 @@ static int btrfs_init_debugfs(void) > return 0; > } > > +static ssize_t send_stream_version_show(struct kobject *kobj, > + struct kobj_attribute *a, > + char *buf) > +{ > + return snprintf(buf, PAGE_SIZE, "%d\n", > + BTRFS_SEND_STREAM_VERSION_LATEST); > +} > + > +BTRFS_ATTR(, stream_version, send_stream_version_show); > + > +static struct attribute *btrfs_send_attrs[] = { > + BTRFS_ATTR_PTR(, stream_version), > + NULL > +}; > + > +static const struct attribute_group btrfs_send_attr_group = { > + .name = "send", > + .attrs = btrfs_send_attrs, > +}; > + > + > +
I know this is Filipe's code, but there are two extra newlines there ;) Otherwise, assuming you tested this and it works as advertised, Reviewed-by: Omar Sandoval <osan...@fb.com> > int __init btrfs_init_sysfs(void) > { > int ret; > @@ -900,8 +923,13 @@ int __init btrfs_init_sysfs(void) > ret = sysfs_create_group(&btrfs_kset->kobj, &btrfs_feature_attr_group); > if (ret) > goto out2; > + ret = sysfs_create_group(&btrfs_kset->kobj, &btrfs_send_attr_group); > + if (ret) > + goto out3; > > return 0; > +out3: > + sysfs_remove_group(&btrfs_kset->kobj, &btrfs_feature_attr_group); > out2: > debugfs_remove_recursive(btrfs_debugfs_root_dentry); > out1: > @@ -913,6 +941,7 @@ int __init btrfs_init_sysfs(void) > void __cold btrfs_exit_sysfs(void) > { > sysfs_remove_group(&btrfs_kset->kobj, &btrfs_feature_attr_group); > + sysfs_remove_group(&btrfs_kset->kobj, &btrfs_send_attr_group); > kset_unregister(btrfs_kset); > debugfs_remove_recursive(btrfs_debugfs_root_dentry); > } > -- > 2.17.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html