Re: RAID10 overwrites partition tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday November 27, Neil Brown wrote
>>    	 mdadm --level 10 does not seem to respect disk partition boundaries.
> 
> Hmmm, yes, thanks.
>
> I think the following should fix the bug.  It only affects 'resync'
> not normal IO or recovery (after a drive has failed).
> ...
> diff ./drivers/md/raid10.c~current~ ./drivers/md/raid10.c
>  --- ./drivers/md/raid10.c~current~	2004-11-16 16:33:50.000000000 +1100
> +++ ./drivers/md/raid10.c	2004-11-27 11:00:06.000000000 +1100
> @@ -1150,6 +1150,7 @@ static void sync_request_write(mddev_t *
>  		md_sync_acct(conf->mirrors[d].rdev->bdev, tbio->bi_size >> 9);
>  
>  		tbio->bi_sector += conf->mirrors[d].rdev->data_offset;
> +		tbio->bi_bdev = conf->mirrors[d].rdev->bdev;
>  		generic_make_request(tbio);
>  	}
 
Thanks, the adjustments to the bio before the generic_make_request do the trick
nicely.

Note that the version of raid10.c in the current Fedora 3 series does not include
either of the adjustments so the patch required against that version becomes:

diff ./drivers/md/raid10.c~ ./drivers/md/raid10.c
 --- ./drivers/md/raid10.c~	2004-11-16 16:33:50.000000000 +1100
+++ ./drivers/md/raid10.c     2004-11-27 11:00:06.000000000 +1100
@@ -1145,6 +1145,8 @@
                atomic_inc(&r10_bio->remaining);
 		md_sync_acct(conf->mirrors[d].rdev->bdev, tbio->bi_size >> 9);
 
+	       tbio->bi_sector += conf->mirrors[d].rdev->data_offset;
+	       tbio->bi_bdev = conf->mirrors[d].rdev->bdev;
 	 	generic_make_request(tbio);
 	}

Thanks again,

Felix

 

-- 

Whatever you Wanadoo:
http://www.wanadoo.co.uk/time/

This email has been checked for most known viruses - find out more at: http://www.wanadoo.co.uk/help/id/7098.htm
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux