fs: btrfs: Do not fail when all root_backups are empty
authorYevgeny Popovych <yevgenyp@pointgrab.com>
Mon, 11 Jun 2018 11:14:33 +0000 (14:14 +0300)
committerTom Rini <trini@konsulko.com>
Mon, 18 Jun 2018 18:43:12 +0000 (14:43 -0400)
commitd146a7b9c6200c7a84a15208f0c06e0ab60890dd
tree3aa7e880487de5353ed1e4e04e3d787971229079
parent28b538b69dd44b5f4ea595059612115069ace96b
fs: btrfs: Do not fail when all root_backups are empty

This is the case when reading freshly created filesystem.
The error message is like the following:
    btrfs_read_superblock: No valid root_backup found!

Since the data from super_roots/root_backups is not actually used -
decided to rework btrfs_newest_root_backup() into
btrfs_check_super_roots() that will only check if super_roots
array is valid and correctly handle empty scenario.

As a result:
* btrfs_read_superblock() now only checks if super_roots array is valid;
  the case when it is empty is considered OK.
* removed root_backup pointer from btrfs_info,
  which would be NULL in case of empty super_roots.
* btrfs_read_superblock() verifies number of devices from the superblock
  itself, not newest root_backup.

Signed-off-by: Yevgeny Popovych <yevgenyp@pointgrab.com>
Cc: Marek Behun <marek.behun@nic.cz>
Cc: Sergey Struzh <sergeys@pointgrab.com>
fs/btrfs/btrfs.h
fs/btrfs/super.c