Btrfs: avoid I/O repair BUG() from btree_read_extent_buffer_pages()
From btree_read_extent_buffer_pages(), currently repair_io_failure() can be called with mirror_num being zero when submit_one_bio() returned an error before. This used to cause a BUG_ON(!mirror_num) in repair_io_failure() and indeed this is not a case that needs the I/O repair code to rewrite disk blocks. This commit prevents calling repair_io_failure() in this case and thus avoids the BUG_ON() and malfunction. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Signed-off-by: Josef Bacik <jbacik@fusionio.com>
This commit is contained in:
parent
f4c738c2e7
commit
c0901581ad
@ -407,7 +407,7 @@ static int btree_read_extent_buffer_pages(struct btrfs_root *root,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (failed && !ret)
|
if (failed && !ret && failed_mirror)
|
||||||
repair_eb_io_failure(root, eb, failed_mirror);
|
repair_eb_io_failure(root, eb, failed_mirror);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user