Re: [PATCH btrfs-progs] btrfs-progs: do not fail when offset of a ROOT_ITEM is not -1
From: David Sterba <hidden>
Date: 2021-02-19 14:07:41
Also in:
u-boot
From: David Sterba <hidden>
Date: 2021-02-19 14:07:41
Also in:
u-boot
On Tue, Feb 09, 2021 at 06:34:06PM +0100, Marek Behún wrote:
When the btrfs_read_fs_root() function is searching a ROOT_ITEM with
location key offset other than -1, it currently fails via BUG_ON.
The offset can have other value than -1, though. This can happen for
example if a subvolume is renamed:
$ btrfs subvolume create X && sync
Create subvolume './X'
$ btrfs inspect-internal dump-tree /dev/root | grep -B 2 'name: X$
location key (270 ROOT_ITEM 18446744073709551615) type DIR
transid 283 data_len 0 name_len 1
name: X
$ mv X Y && sync
$ btrfs inspect-internal dump-tree /dev/root | grep -B 2 'name: Y$
location key (270 ROOT_ITEM 0) type DIR
transid 285 data_len 0 name_len 1
name: Y
As can be seen the offset changed from -1ULL to 0.
Do not fail in this case.
Signed-off-by: Marek Behún <redacted>
Cc: David Sterba <dsterba@suse.com>
Cc: Qu Wenruo <redacted>
Cc: Tom Rini <redacted>Added to devel, thanks.