btrfs: look at bi_size for repair decisions
authorChristoph Hellwig <hch@lst.de>
Fri, 15 Feb 2019 11:13:07 +0000 (19:13 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 15 Feb 2019 15:40:10 +0000 (08:40 -0700)
commit8a2ee44a371c8cbef587ea609908c3cbf1645231
treec9ecfab2ea5857d120f4768fe8b110203cab9ef9
parentfbd72127c975dc8e532ecc73d52f3b1b00935bec
btrfs: look at bi_size for repair decisions

bio_readpage_error currently uses bi_vcnt to decide if it is worth
retrying an I/O.  But the vector count is mostly an implementation
artifact - it really should figure out if there is more than a
single sector worth retrying.  Use bi_size for that and shift by
PAGE_SHIFT.  This really should be blocks/sectors, but given that
btrfs doesn't support a sector size different from the PAGE_SIZE
using the page size keeps the changes to a minimum.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/btrfs/extent_io.c
include/linux/bio.h