OSDN Git Service

btrfs: do not try to repair bio that has no mirror set
authorJosef Bacik <josef@toxicpanda.com>
Fri, 18 Feb 2022 15:03:28 +0000 (10:03 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 14 Mar 2022 12:13:52 +0000 (13:13 +0100)
commit510671d2d83668b76c08baec5faa2319ceaffd62
tree77ec6a082d90167911d41150b62f85450cddec2f
parentf9f15de85d74e7eef021af059ca53a15f041cdd8
btrfs: do not try to repair bio that has no mirror set

If we fail to submit a bio for whatever reason, we may not have setup a
mirror_num for that bio.  This means we shouldn't try to do the repair
workflow, if we do we'll hit an BUG_ON(!failrec->this_mirror) in
clean_io_failure.  Instead simply skip the repair workflow if we have no
mirror set, and add an assert to btrfs_check_repairable() to make it
easier to catch what is happening in the future.

Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c