[dm-devel] [PATCH v2] dm: Fix alignment stacking on partitioned devices

Martin K. Petersen martin.petersen at oracle.com
Thu Jan 7 17:15:00 UTC 2010


>>>>> "Mike" == Mike Snitzer <snitzer at redhat.com> writes:

>> However, there are other subsystems that need to stack without an
>> associated block_device.  So instead of changing blk_stack_limits I
>> propose we use the wrapper below.

Mike> Yes, looks like osdblk.c's use of blk_queue_stack_limits()

DM also does a stacking pass without a bdev (dm_calculate_queue_limits),
although I think you can avoid that by getting rid of ti_limits
altogether and just stack limits.

I couldn't figure out why the alignment_offset for a misaligned DM
device was zero, despite being -1 after stacking had completed.  I
finally spotted this in dm_table_set_restrictions():

        limits->alignment_offset = 0;
        limits->misaligned = 0;

So after all the stacking function's hard work you set the alignment to
0 and clear the misaligned flag.  Why?

-- 
Martin K. Petersen	Oracle Linux Engineering




More information about the dm-devel mailing list