btrfs: raid56: use in_range where applicable

While at it use the opportunity to simplify find_logical_bio_stripe by
reducing the scope of 'stripe_start' variable and squash the
sector-to-bytes conversion on one line.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Nikolay Borisov 2020-07-02 16:46:45 +03:00 committed by David Sterba
parent bf28a605e6
commit 8302586327

View file

@ -1349,7 +1349,6 @@ static int find_bio_stripe(struct btrfs_raid_bio *rbio,
struct bio *bio) struct bio *bio)
{ {
u64 physical = bio->bi_iter.bi_sector; u64 physical = bio->bi_iter.bi_sector;
u64 stripe_start;
int i; int i;
struct btrfs_bio_stripe *stripe; struct btrfs_bio_stripe *stripe;
@ -1357,9 +1356,7 @@ static int find_bio_stripe(struct btrfs_raid_bio *rbio,
for (i = 0; i < rbio->bbio->num_stripes; i++) { for (i = 0; i < rbio->bbio->num_stripes; i++) {
stripe = &rbio->bbio->stripes[i]; stripe = &rbio->bbio->stripes[i];
stripe_start = stripe->physical; if (in_range(physical, stripe->physical, rbio->stripe_len) &&
if (physical >= stripe_start &&
physical < stripe_start + rbio->stripe_len &&
stripe->dev->bdev && stripe->dev->bdev &&
bio->bi_disk == stripe->dev->bdev->bd_disk && bio->bi_disk == stripe->dev->bdev->bd_disk &&
bio->bi_partno == stripe->dev->bdev->bd_partno) { bio->bi_partno == stripe->dev->bdev->bd_partno) {
@ -1377,18 +1374,14 @@ static int find_bio_stripe(struct btrfs_raid_bio *rbio,
static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio, static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio,
struct bio *bio) struct bio *bio)
{ {
u64 logical = bio->bi_iter.bi_sector; u64 logical = (u64)bio->bi_iter.bi_sector << 9;
u64 stripe_start;
int i; int i;
logical <<= 9;
for (i = 0; i < rbio->nr_data; i++) { for (i = 0; i < rbio->nr_data; i++) {
stripe_start = rbio->bbio->raid_map[i]; u64 stripe_start = rbio->bbio->raid_map[i];
if (logical >= stripe_start &&
logical < stripe_start + rbio->stripe_len) { if (in_range(logical, stripe_start, rbio->stripe_len))
return i; return i;
}
} }
return -1; return -1;
} }