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

Mike Snitzer snitzer at redhat.com
Wed Jan 6 13:25:08 UTC 2010


On Wed, Jan 06 2010 at  3:39am -0500,
Martin K. Petersen <martin.petersen at oracle.com> wrote:

> >>>>> "Mike" == Mike Snitzer <snitzer at redhat.com> writes:
> 
> Mike> BTW, the other related concern Alasdair had was that DM shouldn't
> Mike> need to know to add the start of the partition to the 'offset' it
> Mike> passes to blk_stack_limits() -- sees it as a layering violation.
> 
> Mike> I went over the fact that the 'struct queue_limits' was added to
> Mike> abstract out the limit stacking in a way that DM could use too.
> Mike> Without passing asymmetric types for the 'top' and 'bottom' device
> Mike> to blk_stack_limits(), e.g.:
> 
> I don't particularly care about the symmetry.  The current set of
> arguments were first and foremost there to meet DM's needs.  I don't
> think you had access to the bdev at the right time when we originally
> came up with this.

I think we always had it for the bottom device but not the top..
 
> 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.

Yes, looks like osdblk.c's use of blk_queue_stack_limits()
 
> You'll notice that bdev_stack_limits takes a sector offset as argument.
> I have a patch that I intend to push at a later date that will convert
> the remaining stacking functions to take soft sector offsets instead of
> bytes.  I deal with the appropriate conversion in the alignment
> calculation.  That way we avoid the blk_off_t goo entirely and it makes
> the difference between absolute offsets and alignment offsets crystal
> clear.

Looks good.  But you're missing the EXPORT_SYMBOL(bdev_stack_limits)

> Alasdair, if you are OK with the approach below I propose you give an
> Acked-by: and then we can feed the patch through Jens instead of dealing
> with a clunky two-stage merge this late in the .33 game.

Good point, you can have mine while we're at it.


> block: bdev_stack_limits wrapper
> 
> DM does not want to know about partition offsets.  Add a partition-aware
> wrapper that DM can use when stacking block devices.
> 
> Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>

Acked-by: Mike Snitzer <snitzer at redhat.com>




More information about the dm-devel mailing list