Browse Source

Btrfs: Extra NULL block group checks in find_free_extent

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 17 years ago
parent
commit
70b043f0c7
1 changed files with 6 additions and 0 deletions
  1. 6 0
      fs/btrfs/extent-tree.c

+ 6 - 0
fs/btrfs/extent-tree.c

@@ -1319,6 +1319,12 @@ static int find_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root
 	total_needed += empty_size;
 	path = btrfs_alloc_path();
 check_failed:
+	if (!block_group) {
+		block_group = btrfs_lookup_block_group(info, search_start);
+		if (!block_group)
+			block_group = btrfs_lookup_block_group(info,
+						       orig_search_start);
+	}
 	search_start = find_search_start(root, &block_group, search_start,
 					 total_needed, data, full_scan);
 	search_start = stripe_align(root, search_start);