diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2014-07-03 17:36:36 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-08-22 15:04:50 +0200 |
commit | 23d7f6d9dc0aa42e30fe9642b4e0876354d2c02e (patch) | |
tree | a4126379363d41fb397f73df5d532f65104d10f2 /btrfs-find-root.c | |
parent | bc70abad8cddc344bef1378017d159139c89d4ba (diff) |
btrfs-progs: Allow btrfs_read_dev_super() to read all 3 super for super_recover.
Btrfs-progs superblock checksum check is somewhat too restricted for
super-recover, since current btrfs-progs will only read the 1st
superblock and if you need super-recover the 1st superblock is
possibly already damaged.
The fix is introducing super_recover parameter for
btrfs_read_dev_super() and callers to allow scan backup superblocks if
needed.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'btrfs-find-root.c')
-rw-r--r-- | btrfs-find-root.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/btrfs-find-root.c b/btrfs-find-root.c index 25d79f1a..e31a9b59 100644 --- a/btrfs-find-root.c +++ b/btrfs-find-root.c @@ -82,7 +82,7 @@ static struct btrfs_root *open_ctree_broken(int fd, const char *device) return NULL; } - ret = btrfs_scan_fs_devices(fd, device, &fs_devices, 0, 1); + ret = btrfs_scan_fs_devices(fd, device, &fs_devices, 0, 1, 1); if (ret) goto out; @@ -94,7 +94,7 @@ static struct btrfs_root *open_ctree_broken(int fd, const char *device) disk_super = fs_info->super_copy; ret = btrfs_read_dev_super(fs_devices->latest_bdev, - disk_super, fs_info->super_bytenr); + disk_super, fs_info->super_bytenr, 1); if (ret) { printk("No valid btrfs found\n"); goto out_devices; |