From 4b3576e450a1539492e26e2d7b1e2e69578c032e Mon Sep 17 00:00:00 2001 From: Zhaolei Date: Wed, 5 Aug 2015 18:00:02 +0800 Subject: btrfs: Error handle for get_ref_objectid_v0() in relocate_block_group() We need error checking code for get_ref_objectid_v0() in relocate_block_group(), to avoid unpredictable result, especially for accessing uninitialized value(when function failed) after this line. Signed-off-by: Zhao Lei Reviewed-by: David Sterba Signed-off-by: Chris Mason --- fs/btrfs/relocation.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'fs/btrfs/relocation.c') diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 52fe55ad11d6..1659c94f179c 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -3976,6 +3976,10 @@ restart: sizeof(struct btrfs_extent_item_v0)); ret = get_ref_objectid_v0(rc, path, &key, &ref_owner, &path_change); + if (ret < 0) { + err = ret; + break; + } if (ref_owner < BTRFS_FIRST_FREE_OBJECTID) flags = BTRFS_EXTENT_FLAG_TREE_BLOCK; else -- cgit v1.2.3