From: Andre Noll <maan@systemlinux.org>
To: linux-raid@vger.kernel.org
Cc: Andre Noll <maan@systemlinux.org>
Subject: [PATCH 3/5] md: Make calc_dev_sboffset() return a sector count.
Date: Thu, 10 Jul 2008 11:15:36 +0200 [thread overview]
Message-ID: <1215681338-32365-4-git-send-email-maan@systemlinux.org> (raw)
In-Reply-To: <1215681338-32365-1-git-send-email-maan@systemlinux.org>
As BLOCK_SIZE_BITS is 10 and
MD_NEW_SIZE_SECTORS(2 * x) = 2 * NEW_SIZE_BLOCKS(x),
the return value of calc_dev_sboffset() doubles. Fix up all three
callers accordingly.
Signed-off-by: Andre Noll <maan@systemlinux.org>
---
drivers/md/md.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 1a6001e..6179e8f 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -347,10 +347,11 @@ static struct mdk_personality *find_pers(int level, char *clevel)
return NULL;
}
+/* return the offset of the super block in 512byte sectors */
static inline sector_t calc_dev_sboffset(struct block_device *bdev)
{
- sector_t size = bdev->bd_inode->i_size >> BLOCK_SIZE_BITS;
- return MD_NEW_SIZE_BLOCKS(size);
+ sector_t num_sectors = bdev->bd_inode->i_size / 512;
+ return MD_NEW_SIZE_SECTORS(num_sectors);
}
static sector_t calc_num_sectors(mdk_rdev_t *rdev, unsigned chunk_size)
@@ -679,7 +680,7 @@ static int super_90_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version
*
* It also happens to be a multiple of 4Kb.
*/
- sb_offset = calc_dev_sboffset(rdev->bdev);
+ sb_offset = calc_dev_sboffset(rdev->bdev) / 2;
rdev->sb_offset = sb_offset;
ret = read_disk_sb(rdev, MD_SB_BYTES);
@@ -4212,7 +4213,7 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
printk(KERN_INFO "md: nonpersistent superblock ...\n");
rdev->sb_offset = rdev->bdev->bd_inode->i_size >> BLOCK_SIZE_BITS;
} else
- rdev->sb_offset = calc_dev_sboffset(rdev->bdev);
+ rdev->sb_offset = calc_dev_sboffset(rdev->bdev) / 2;
rdev->size = calc_num_sectors(rdev, mddev->chunk_size) / 2;
err = bind_rdev_to_array(rdev, mddev);
@@ -4282,7 +4283,7 @@ static int hot_add_disk(mddev_t * mddev, dev_t dev)
}
if (mddev->persistent)
- rdev->sb_offset = calc_dev_sboffset(rdev->bdev);
+ rdev->sb_offset = calc_dev_sboffset(rdev->bdev) / 2;
else
rdev->sb_offset =
rdev->bdev->bd_inode->i_size >> BLOCK_SIZE_BITS;
--
1.5.3.8
next prev parent reply other threads:[~2008-07-10 9:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-10 9:15 [PATCH 0/5] md: sector_t conversions Andre Noll
2008-07-10 9:15 ` [PATCH 1/5] md: Make update_size() take the number of sectors Andre Noll
2008-07-11 10:56 ` Neil Brown
2008-07-10 9:15 ` [PATCH 2/5] md: Replace calc_dev_size() by calc_num_sectors() Andre Noll
2008-07-10 9:15 ` Andre Noll [this message]
2008-07-11 11:04 ` [PATCH 3/5] md: Make calc_dev_sboffset() return a sector count Neil Brown
2008-07-10 9:15 ` [PATCH 4/5] md: Turn rdev->sb_offset into a sector-based quantity Andre Noll
2008-07-11 11:15 ` Neil Brown
2008-07-17 9:40 ` Andre Noll
2008-07-21 10:38 ` Neil Brown
2008-07-10 9:15 ` [PATCH 5/5] md: Remove some unused macros Andre Noll
2008-07-11 12:18 ` [PATCH 0/5] md: sector_t conversions Neil Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1215681338-32365-4-git-send-email-maan@systemlinux.org \
--to=maan@systemlinux.org \
--cc=linux-raid@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).