summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2023-06-15 08:48:36 +0200
committerSong Liu <song@kernel.org>2023-07-27 00:13:29 -0700
commit0c3ea5cc8fbdc3515cfb0c47f5a284882f5e4d80 (patch)
tree486eef8c48aebc6961894144acce3fa9ab286346 /drivers/md
parent844dc6691ad5f53a624f4b07bf84037abbb8fce2 (diff)
downloadlinux-0c3ea5cc8fbdc3515cfb0c47f5a284882f5e4d80.tar.gz
linux-0c3ea5cc8fbdc3515cfb0c47f5a284882f5e4d80.tar.bz2
linux-0c3ea5cc8fbdc3515cfb0c47f5a284882f5e4d80.zip
md-bitmap: cleanup read_sb_page
Convert read_sb_page to the normal kernel coding style, calculate the target sector only once, and add a local iosize variable to make the call to sync_page_io more readable. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20230615064840.629492-8-hch@lst.de
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/md-bitmap.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index db5725beaefb..c6dd1fa5a0be 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -139,26 +139,25 @@ static void md_bitmap_checkfree(struct bitmap_counts *bitmap, unsigned long page
*/
/* IO operations when bitmap is stored near all superblocks */
+
+/* choose a good rdev and read the page from there */
static int read_sb_page(struct mddev *mddev, loff_t offset,
- struct page *page,
- unsigned long index, int size)
+ struct page *page, unsigned long index, int size)
{
- /* choose a good rdev and read the page from there */
+ sector_t sector = offset + index * (PAGE_SIZE / SECTOR_SIZE);
struct md_rdev *rdev;
- sector_t target;
rdev_for_each(rdev, mddev) {
- if (! test_bit(In_sync, &rdev->flags)
- || test_bit(Faulty, &rdev->flags)
- || test_bit(Bitmap_sync, &rdev->flags))
- continue;
+ u32 iosize = roundup(size, bdev_logical_block_size(rdev->bdev));
- target = offset + index * (PAGE_SIZE/512);
+ if (!test_bit(In_sync, &rdev->flags) ||
+ test_bit(Faulty, &rdev->flags) ||
+ test_bit(Bitmap_sync, &rdev->flags))
+ continue;
- if (sync_page_io(rdev, target,
- roundup(size, bdev_logical_block_size(rdev->bdev)),
- page, REQ_OP_READ, true)) {
+ if (sync_page_io(rdev, sector, iosize, page, REQ_OP_READ,
+ true)) {
page->index = index;
return 0;
}