Message ID | 1398030003-12697-1-git-send-email-fdmanana@gmail.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Sun, Apr 20, 2014 at 10:40:03PM +0100, Filipe David Borba Manana wrote: > 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 > > Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> > --- > > V2: Renamed /sys/fs/btrfs/send_stream_version to /sys/fs/btrfs/send/stream_version, > as in the future it might be useful to add other sysfs attrbutes related to > send (other ro information or tunables like internal buffer sizes, etc). Sounds good, I don't see any issue with the separate directory. Mixing it with /sys/fs/btrfs/features does not seem suitable for that if you intend adding more entries. Reviewed-by: David Sterba <dsterba@suse.cz> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, May 2, 2014 at 4:46 PM, David Sterba <dsterba@suse.cz> wrote: > On Sun, Apr 20, 2014 at 10:40:03PM +0100, Filipe David Borba Manana wrote: >> 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 >> >> Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> >> --- >> >> V2: Renamed /sys/fs/btrfs/send_stream_version to /sys/fs/btrfs/send/stream_version, >> as in the future it might be useful to add other sysfs attrbutes related to >> send (other ro information or tunables like internal buffer sizes, etc). > > Sounds good, I don't see any issue with the separate directory. Mixing > it with /sys/fs/btrfs/features does not seem suitable for that if you > intend adding more entries. Yeah, I only didn't mix it with the features subdir because that relates to features that are settable, plus there's 2 versions of it, one global and one per fs (uuid) subdirectory (and it felt odd to me to add it to one of those subdirs and not the other). Thanks David > > Reviewed-by: David Sterba <dsterba@suse.cz>
diff --git a/fs/btrfs/send.h b/fs/btrfs/send.h index 987936c..047fd6d 100644 --- a/fs/btrfs/send.h +++ b/fs/btrfs/send.h @@ -22,6 +22,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 (1024 * 64) #define BTRFS_SEND_READ_SIZE (1024 * 48) diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c index 58a1dd1..d93c0b5 100644 --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c @@ -31,6 +31,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); @@ -662,6 +663,26 @@ 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, 0444, 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, +}; + int btrfs_init_sysfs(void) { int ret; @@ -678,8 +699,13 @@ int 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: @@ -691,6 +717,7 @@ out1: void 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); }
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 Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> --- V2: Renamed /sys/fs/btrfs/send_stream_version to /sys/fs/btrfs/send/stream_version, as in the future it might be useful to add other sysfs attrbutes related to send (other ro information or tunables like internal buffer sizes, etc). fs/btrfs/send.h | 1 + fs/btrfs/sysfs.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+)