Re: [PATCH] btrfs: sysfs: advertise zoned support among features
From: Anand Jain <hidden>
Date: 2021-08-05 00:13:23
On 29/07/2021 00:56, David Sterba wrote:
quoted hunk ↗ jump to hunk
We've hidden the zoned support in sysfs under debug config for the first releases but now the stability is reasonable, though not all features have been implemented. As this depends on a config option, the per-filesystem feature won't exist as such filesystem can't be mounted. The static feature will print 1 when the support is built-in, 0 otherwise. Signed-off-by: David Sterba <dsterba@suse.com> --- The merge target is not set, depends if everybody thinks it's the time even though there are still known bugs. We're also waiting for util-linux support (blkid, wipefs), so that needs to be synced too. fs/btrfs/sysfs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c index bfe5e27617b0..7ad8f802ab88 100644 --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c@@ -263,8 +263,7 @@ BTRFS_FEAT_ATTR_INCOMPAT(no_holes, NO_HOLES); BTRFS_FEAT_ATTR_INCOMPAT(metadata_uuid, METADATA_UUID); BTRFS_FEAT_ATTR_COMPAT_RO(free_space_tree, FREE_SPACE_TREE); BTRFS_FEAT_ATTR_INCOMPAT(raid1c34, RAID1C34); -/* Remove once support for zoned allocation is feature complete */ -#ifdef CONFIG_BTRFS_DEBUG +#ifdef CONFIG_BLK_DEV_ZONED BTRFS_FEAT_ATTR_INCOMPAT(zoned, ZONED); #endif #ifdef CONFIG_FS_VERITY@@ -285,7 +284,7 @@ static struct attribute *btrfs_supported_feature_attrs[] = { BTRFS_FEAT_ATTR_PTR(metadata_uuid), BTRFS_FEAT_ATTR_PTR(free_space_tree), BTRFS_FEAT_ATTR_PTR(raid1c34), -#ifdef CONFIG_BTRFS_DEBUG +#ifdef CONFIG_BLK_DEV_ZONED BTRFS_FEAT_ATTR_PTR(zoned), #endif #ifdef CONFIG_FS_VERITY
Looks good until here.
quoted hunk ↗ jump to hunk
@@ -384,12 +383,19 @@ static ssize_t supported_sectorsizes_show(struct kobject *kobj, BTRFS_ATTR(static_feature, supported_sectorsizes, supported_sectorsizes_show); +static ssize_t zoned_show(struct kobject *kobj, struct kobj_attribute *a, char *buf) +{ + return scnprintf(buf, PAGE_SIZE, "%d\n", IS_ENABLED(CONFIG_BLK_DEV_ZONED)); +} +BTRFS_ATTR(static_feature, zoned, zoned_show); + static struct attribute *btrfs_supported_static_feature_attrs[] = { BTRFS_ATTR_PTR(static_feature, rmdir_subvol), BTRFS_ATTR_PTR(static_feature, supported_checksums), BTRFS_ATTR_PTR(static_feature, send_stream_version), BTRFS_ATTR_PTR(static_feature, supported_rescue_options), BTRFS_ATTR_PTR(static_feature, supported_sectorsizes), + BTRFS_ATTR_PTR(static_feature, zoned), NULL };
We don't need this part. btrfs_supported_feature_attrs will
take care of showing zoned if when enabled on the mounted btrfs.
As of now, this patch fails with
[ 44.464597] sysfs: cannot create duplicate filename
'/fs/btrfs/features/zoned'
Thanks, Anand