Btrfs-progs: fsck: fix wrong check for btrfs_read_fs_root()
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Wed, 28 May 2014 11:20:41 +0000 (19:20 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 22 Aug 2014 12:39:33 +0000 (14:39 +0200)
commita764785990db3a68c09d1d5cfcfc49b5b6028179
tree76de9a952328ccc927f8c101f40d2facc6b5a4ac
parentc63d47653fc61e59f6b7d30b55982e9fe843ceef
Btrfs-progs: fsck: fix wrong check for btrfs_read_fs_root()

When encountering a corrupted fs root node, fsck hit following message:

Check tree block failed, want=29360128, have=0
Check tree block failed, want=29360128, have=0
Check tree block failed, want=29360128, have=0
Check tree block failed, want=29360128, have=0
Check tree block failed, want=29360128, have=0
read block failed check_tree_block
Checking filesystem on /dev/sda9
UUID: 0d295d80-bae2-45f2-a106-120dbfd0e173
checking extents
Segmentation fault (core dumped)

This is because in btrfs_setup_all_roots(), we check
btrfs_read_fs_root() return value by verifing whether it is
NULL pointer, this is wrong since btrfs_read_fs_root() return
PTR_ERR(ret), fix it.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
btrfs-calc-size.c
disk-io.c