[dm-devel] [PATCH] dm raid: ensure metadata IO matches device block size.
NeilBrown
neilb at suse.de
Wed Oct 15 01:19:07 UTC 2014
dm_raid_superblock is 512.
Reading or writing this on a 512-byte sector works fine.
On a 4096-byte sector device, this fails.
If we round up rdev->sb_size to match the block size of
the device, all IO will work correctly.
Reported-by: "Liuhua Wang" <lwang at suse.com>
Signed-off-by: NeilBrown <neilb at suse.de>
---
this issue has been discussed already a bit. See email thread
Subject: Re: [dm-devel] [PATCH] fix mirror device creation with lvcreate failed
I think this is the best fix. It handles boths read and writes, and (I think)
at the best level.
Thanks,
NeilBrown
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index 4880b69e2e9e..31bdd73bc368 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -858,7 +858,8 @@ static int super_load(struct md_rdev *rdev, struct md_rdev *refdev)
uint64_t events_sb, events_refsb;
rdev->sb_start = 0;
- rdev->sb_size = sizeof(*sb);
+ rdev->sb_size = roundup(sizeof(*sb),
+ bdev_logical_block_size(rdev->meta_bdev));
ret = read_disk_sb(rdev, rdev->sb_size);
if (ret)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 828 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20141015/f04f0eab/attachment.sig>
More information about the dm-devel
mailing list