Commit 597a60fa authored by Stefan Behrens's avatar Stefan Behrens Committed by Chris Mason

Btrfs: don't count I/O statistic read errors for missing devices

It is normal behaviour of the low level btrfs function btrfs_map_bio()
to complete a bio with -EIO if the device is missing, instead of just
preventing the bio creation in an earlier step.
This used to cause I/O statistic read error increments and annoying
printk_ratelimited messages. This commit fixes the issue.
Signed-off-by: default avatarStefan Behrens <sbehrens@giantdisaster.de>
Reported-by: default avatarCarey Underwood <cwillu@cwillu.com>
parent d42244a0
...@@ -4061,6 +4061,7 @@ static void btrfs_end_bio(struct bio *bio, int err) ...@@ -4061,6 +4061,7 @@ static void btrfs_end_bio(struct bio *bio, int err)
BUG_ON(stripe_index >= bbio->num_stripes); BUG_ON(stripe_index >= bbio->num_stripes);
dev = bbio->stripes[stripe_index].dev; dev = bbio->stripes[stripe_index].dev;
if (dev->bdev) {
if (bio->bi_rw & WRITE) if (bio->bi_rw & WRITE)
btrfs_dev_stat_inc(dev, btrfs_dev_stat_inc(dev,
BTRFS_DEV_STAT_WRITE_ERRS); BTRFS_DEV_STAT_WRITE_ERRS);
...@@ -4073,6 +4074,7 @@ static void btrfs_end_bio(struct bio *bio, int err) ...@@ -4073,6 +4074,7 @@ static void btrfs_end_bio(struct bio *bio, int err)
btrfs_dev_stat_print_on_error(dev); btrfs_dev_stat_print_on_error(dev);
} }
} }
}
if (bio == bbio->orig_bio) if (bio == bbio->orig_bio)
is_orig_bio = 1; is_orig_bio = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment