u-boot-brain/fs
Marek Behún 1afb9f2222 fs: btrfs: do not fail when offset of a ROOT_ITEM is not -1
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 <marek.behun@nic.cz>
Cc: David Sterba <dsterba@suse.com>
Cc: Qu Wenruo <wqu@suse.com>
Cc: Tom Rini <trini@konsulko.com>
2021-03-01 09:53:46 -05:00
..
btrfs fs: btrfs: do not fail when offset of a ROOT_ITEM is not -1 2021-03-01 09:53:46 -05:00
cbfs cbfs: Don't require the CBFS size with cbfs_init_mem() 2020-05-27 14:40:09 +08:00
cramfs common: Drop flash.h from common header 2020-05-18 14:53:28 -04:00
ext4 common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
fat fs: fat: remove trailing periods from long name 2021-02-03 11:41:02 +01:00
jffs2 common: Drop flash.h from common header 2020-05-18 14:53:28 -04:00
reiserfs common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sandbox common: Drop part.h from common header 2020-05-18 17:33:33 -04:00
squashfs fs/squashfs: NULL dereference in sqfs_closedir() 2021-02-24 16:51:48 -05:00
ubifs common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
yaffs2 common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
zfs common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
Kconfig fs/squashfs: new filesystem 2020-08-07 22:31:32 -04:00
Makefile fs/squashfs: new filesystem 2020-08-07 22:31:32 -04:00
fs.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
fs_internal.c fs: convert error and debug messages to log 2020-09-06 21:21:41 +02:00