Also, those error messages should read "Target length not divisible...", not "divisable". --D On Tue, 2006-03-14 at 16:31 -0600, Kevin Corry wrote: > The dm-striped target currently does not enforce that the size of a stripe > device be a multiple of the chunk-size. Under certain conditions, this can > lead to I/O requests going off the end of an underlying device. This > test-case shows one example. > > echo "0 100 linear /dev/hdb1 0" | dmsetup create linear0 > echo "0 100 linear /dev/hdb1 100" | dmsetup create linear1 > echo "0 200 striped 2 32 /dev/mapper/linear0 0 /dev/mapper/linear1 0" | \ > dmsetup create stripe0 > dd if=/dev/zero of=/dev/mapper/stripe0 bs=1k > > This will produce the output: > dd: writing '/dev/mapper/stripe0': Input/output error > 97+0 records in > 96+0 records out > > And in the kernel log will be: > attempt to access beyond end of device > dm-0: rw=0, want=104, limit=100 > > The patch below will check that the table size is a multiple of the stripe > chunk-size when the table is created, which will prevent the above striped > device from being created. > > This should not effect tools like LVM or EVMS, since in all the cases I can > think of, striped devices are always created with the sizes being a multiple > of the chunk-size. >
Attachment:
signature.asc
Description: This is a digitally signed message part
-- dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel