[dm-devel] [PATCH] fix mirror device creation with lvcreate failed

Alasdair G Kergon agk at redhat.com
Tue Sep 16 23:21:04 UTC 2014


On Wed, Aug 27, 2014 at 04:18:25PM +0800, Liuhua Wang wrote:
>  On some devices, 

Which devices?  What is the necessary condition to trigger the problem?

> when create mirror device with lvcreate, it fails.
>  device-mapper: reload ioctl on  failed: Invalid argument
>  Failed to activate new LV.
 
What exactly causes this error?
- Do you get a kernel error message too?

>  We can use read size 4096 since md always use 4096.
 
How is that connected to problem?
Why does it fix it?

> +++ b/drivers/md/dm-raid.c
> @@ -860,7 +860,7 @@ static int super_load(struct md_rdev *rdev, struct md_rdev *refdev)
>  	rdev->sb_start = 0;
>  	rdev->sb_size = sizeof(*sb);
  
What should sb_size really be?

> -	ret = read_disk_sb(rdev, rdev->sb_size);
> +	ret = read_disk_sb(rdev, 4096);

Why aren't they both MD_SB_BYTES?
(Strictly, does sb_size need recalculating after the read?)

Alasdair




More information about the dm-devel mailing list