mbox series

[0/2] btrfs-progs: convert: follow default v2 cache setting

Message ID cover.1679480445.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs-progs: convert: follow default v2 cache setting | expand

Message

Qu Wenruo March 22, 2023, 10:27 a.m. UTC
Although btrfs-convert has followed the new default setting in v5.15
release, it doesn't work.

The problem is the convert workflow itself (making an temporary btrfs
first, then sync the inodes) doesn't really create the free space tree
nor the needed super block flags.

And during the inodes sync phase, we generate v1 cache, causing the
result btrfs to be v1 cache populated, and cause test case failure for
subpage testing.


This patchset would fix the converted btrfs at the final stage, by
clearing the existing v1 cache first, then create and populate a valid
free space tree, with needed super block flags.


There seems to be a behavior change in mkfs.ext4 (e2fsprogs 1.47),
that would create an orphan inode (with fixed ino number 12), and
btrfs-convert would follow the ext4 to create an orphan in btrfs too,
causing btrfs check to complain.

So for now, I can not do convert testing due to the newly updated
e2fsprogs...

Qu Wenruo (2):
  btrfs-progs: make check/clear-cache.c to be separate from check/main.c
  btrfs-progs: convert: follow the default free space tree setting

 Makefile            |  2 +-
 check/clear-cache.c | 84 ++++++++++++++++++++++++---------------------
 check/clear-cache.h |  8 +++--
 check/main.c        |  6 ++--
 convert/main.c      | 23 +++++++++++++
 5 files changed, 76 insertions(+), 47 deletions(-)

Comments

Neal Gompa March 22, 2023, 12:13 p.m. UTC | #1
On Wed, Mar 22, 2023 at 6:29 AM Qu Wenruo <wqu@suse.com> wrote:
>
> Although btrfs-convert has followed the new default setting in v5.15
> release, it doesn't work.
>
> The problem is the convert workflow itself (making an temporary btrfs
> first, then sync the inodes) doesn't really create the free space tree
> nor the needed super block flags.
>
> And during the inodes sync phase, we generate v1 cache, causing the
> result btrfs to be v1 cache populated, and cause test case failure for
> subpage testing.
>
>
> This patchset would fix the converted btrfs at the final stage, by
> clearing the existing v1 cache first, then create and populate a valid
> free space tree, with needed super block flags.
>
>
> There seems to be a behavior change in mkfs.ext4 (e2fsprogs 1.47),
> that would create an orphan inode (with fixed ino number 12), and
> btrfs-convert would follow the ext4 to create an orphan in btrfs too,
> causing btrfs check to complain.
>
> So for now, I can not do convert testing due to the newly updated
> e2fsprogs...
>
> Qu Wenruo (2):
>   btrfs-progs: make check/clear-cache.c to be separate from check/main.c
>   btrfs-progs: convert: follow the default free space tree setting
>
>  Makefile            |  2 +-
>  check/clear-cache.c | 84 ++++++++++++++++++++++++---------------------
>  check/clear-cache.h |  8 +++--
>  check/main.c        |  6 ++--
>  convert/main.c      | 23 +++++++++++++
>  5 files changed, 76 insertions(+), 47 deletions(-)
>
> --
> 2.39.2
>

LGTM.

Reviewed-by: Neal Gompa <neal@gompa.dev>




--
真実はいつも一つ!/ Always, there's only one truth!