diff options
author | Naohiro Aota <naohiro.aota@wdc.com> | 2023-02-13 14:10:38 +0900 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2023-03-06 19:28:19 +0100 |
commit | 98e8d36a26c2ed22f78316df7d4bf33e554b9f9f (patch) | |
tree | 719c708d1b4cb4da0e1f71655fb2d007308f51c7 /fs | |
parent | c06016a02a6e316d861f7dddd4b70419a47ded2f (diff) | |
download | linux-stable-98e8d36a26c2ed22f78316df7d4bf33e554b9f9f.tar.gz linux-stable-98e8d36a26c2ed22f78316df7d4bf33e554b9f9f.tar.bz2 linux-stable-98e8d36a26c2ed22f78316df7d4bf33e554b9f9f.zip |
btrfs: fix unnecessary increment of read error stat on write error
Current btrfs_log_dev_io_error() increases the read error count even if the
erroneous IO is a WRITE request. This is because it forget to use "else
if", and all the error WRITE requests counts as READ error as there is (of
course) no REQ_RAHEAD bit set.
Fixes: c3a62baf21ad ("btrfs: use chained bios when cloning")
CC: stable@vger.kernel.org # 6.1+
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/bio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c index d8b90f95b157..726592868e9c 100644 --- a/fs/btrfs/bio.c +++ b/fs/btrfs/bio.c @@ -287,7 +287,7 @@ static void btrfs_log_dev_io_error(struct bio *bio, struct btrfs_device *dev) if (btrfs_op(bio) == BTRFS_MAP_WRITE) btrfs_dev_stat_inc_and_print(dev, BTRFS_DEV_STAT_WRITE_ERRS); - if (!(bio->bi_opf & REQ_RAHEAD)) + else if (!(bio->bi_opf & REQ_RAHEAD)) btrfs_dev_stat_inc_and_print(dev, BTRFS_DEV_STAT_READ_ERRS); if (bio->bi_opf & REQ_PREFLUSH) btrfs_dev_stat_inc_and_print(dev, BTRFS_DEV_STAT_FLUSH_ERRS); |