mbox series

[0/6] btrfs-progs: zoned devices support for bgt feature

Message ID cover.1711412540.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs-progs: zoned devices support for bgt feature | expand

Message

Qu Wenruo March 26, 2024, 12:22 a.m. UTC
[REPO]
https://github.com/adam900710/btrfs-progs/tree/zoned_bgt

There is a bug report that, the following tool would fail on zone
devices:

- mkfs.btrfs -O block-group-tree
- btrfstune --convert-to-block-group-tree|--convert-from-block-group-tree

The mkfs failure is caused by zoned incompatible pwrite() calls for
block group tree metadata.

The btrfstune failure is caused by the incorrectly opened fd.


Before fixing both bugs, do two small cleanups, one caught by clangd LSP
server, the other caught by my later check on the test case output (a
missing newline).

Then fixes for each bug, and new test cases for each bug.

Qu Wenruo (6):
  btrfs-progs: remove unused header for tune/main.c
  btrfs-progs: tune: add the missing newline for
    --convert-from-block-group-tree
  btrfs-progs: mkfs: use proper zoned compatible write for bgt feature
  btrfs-progs: tune: properly open zoned devices for RW
  btrfs-progs: tests-mkfs: add test case for zoned block group tree
    feature
  btrfs-progs: tests-misc: add a test case to check zoned bgt conversion

 mkfs/common.c                                 |  4 +-
 .../063-btrfstune-zoned-bgt/test.sh           | 55 +++++++++++++++++++
 tests/mkfs-tests/031-zoned-bgt/test.sh        | 40 ++++++++++++++
 tune/convert-bgt.c                            |  2 +-
 tune/main.c                                   |  7 ++-
 5 files changed, 103 insertions(+), 5 deletions(-)
 create mode 100755 tests/misc-tests/063-btrfstune-zoned-bgt/test.sh
 create mode 100755 tests/mkfs-tests/031-zoned-bgt/test.sh

--
2.44.0

Comments

Johannes Thumshirn March 26, 2024, 4:53 p.m. UTC | #1
Looks good to me, thanks Qu

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Naohiro Aota March 27, 2024, 1:23 a.m. UTC | #2
On Tue, Mar 26, 2024 at 10:52:40AM +1030, Qu Wenruo wrote:
> [REPO]
> https://github.com/adam900710/btrfs-progs/tree/zoned_bgt
> 
> There is a bug report that, the following tool would fail on zone
> devices:
> 
> - mkfs.btrfs -O block-group-tree
> - btrfstune --convert-to-block-group-tree|--convert-from-block-group-tree
> 
> The mkfs failure is caused by zoned incompatible pwrite() calls for
> block group tree metadata.
> 
> The btrfstune failure is caused by the incorrectly opened fd.
> 
> 
> Before fixing both bugs, do two small cleanups, one caught by clangd LSP
> server, the other caught by my later check on the test case output (a
> missing newline).
> 
> Then fixes for each bug, and new test cases for each bug.
> 
> Qu Wenruo (6):
>   btrfs-progs: remove unused header for tune/main.c
>   btrfs-progs: tune: add the missing newline for
>     --convert-from-block-group-tree
>   btrfs-progs: mkfs: use proper zoned compatible write for bgt feature
>   btrfs-progs: tune: properly open zoned devices for RW
>   btrfs-progs: tests-mkfs: add test case for zoned block group tree
>     feature
>   btrfs-progs: tests-misc: add a test case to check zoned bgt conversion
> 
>  mkfs/common.c                                 |  4 +-
>  .../063-btrfstune-zoned-bgt/test.sh           | 55 +++++++++++++++++++
>  tests/mkfs-tests/031-zoned-bgt/test.sh        | 40 ++++++++++++++
>  tune/convert-bgt.c                            |  2 +-
>  tune/main.c                                   |  7 ++-
>  5 files changed, 103 insertions(+), 5 deletions(-)
>  create mode 100755 tests/misc-tests/063-btrfstune-zoned-bgt/test.sh
>  create mode 100755 tests/mkfs-tests/031-zoned-bgt/test.sh
> 
> --
> 2.44.0
> 

Looks good to me.

Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>
David Sterba March 27, 2024, 11:52 p.m. UTC | #3
On Tue, Mar 26, 2024 at 10:52:40AM +1030, Qu Wenruo wrote:
> [REPO]
> https://github.com/adam900710/btrfs-progs/tree/zoned_bgt
> 
> There is a bug report that, the following tool would fail on zone
> devices:
> 
> - mkfs.btrfs -O block-group-tree
> - btrfstune --convert-to-block-group-tree|--convert-from-block-group-tree
> 
> The mkfs failure is caused by zoned incompatible pwrite() calls for
> block group tree metadata.
> 
> The btrfstune failure is caused by the incorrectly opened fd.
> 
> 
> Before fixing both bugs, do two small cleanups, one caught by clangd LSP
> server, the other caught by my later check on the test case output (a
> missing newline).
> 
> Then fixes for each bug, and new test cases for each bug.
> 
> Qu Wenruo (6):
>   btrfs-progs: remove unused header for tune/main.c
>   btrfs-progs: tune: add the missing newline for
>     --convert-from-block-group-tree
>   btrfs-progs: mkfs: use proper zoned compatible write for bgt feature
>   btrfs-progs: tune: properly open zoned devices for RW
>   btrfs-progs: tests-mkfs: add test case for zoned block group tree
>     feature
>   btrfs-progs: tests-misc: add a test case to check zoned bgt conversion

Added to devel, thanks.