This is a userland part of supporting zoned block device on btrfs. Since the log-structured superblock feature changed the location of superblock magic, the current util-linux (libblkid) cannot detect HMZONED btrfs anymore. You need to apply a to-be posted patch to util-linux to make it "zone aware". Naohiro Aota (15): btrfs-progs: utils: Introduce queue_param helper function btrfs-progs: introduce raid parameters variables btrfs-progs: build: Check zoned block device support btrfs-progs: add new HMZONED feature flag btrfs-progs: Introduce zone block device helper functions btrfs-progs: load and check zone information btrfs-progs: support discarding zoned device btrfs-progs: support zero out on zoned block device btrfs-progs: implement log-structured superblock for HMZONED mode btrfs-progs: align device extent allocation to zone boundary btrfs-progs: do sequential allocation in HMZONED mode btrfs-progs: redirty clean extent buffers in seq btrfs-progs: mkfs: Zoned block device support btrfs-progs: device-add: support HMZONED device btrfs-progs: introduce support for device replace HMZONED device Makefile | 3 +- cmds/device.c | 32 +- cmds/inspect-dump-super.c | 4 +- cmds/replace.c | 12 +- common/device-scan.c | 19 +- common/device-utils.c | 109 +++- common/device-utils.h | 4 + common/fsfeatures.c | 8 + common/fsfeatures.h | 2 +- common/hmzoned.c | 1009 +++++++++++++++++++++++++++++++++++++ common/hmzoned.h | 139 +++++ configure.ac | 13 + ctree.h | 11 +- disk-io.c | 14 +- extent-tree.c | 24 + kerncompat.h | 9 + mkfs/common.c | 38 +- mkfs/common.h | 1 + mkfs/main.c | 90 ++-- transaction.c | 7 + volumes.c | 116 ++++- volumes.h | 4 + 22 files changed, 1582 insertions(+), 86 deletions(-) create mode 100644 common/hmzoned.c create mode 100644 common/hmzoned.h -- 2.24.0