1. NAME

blk_stack_limits - adjust queue_limits for stacked devices

2. SYNOPSIS

int blk_stack_limits(struct queue_limits *  t , struct queue_limits *  b , sector_t  start );

3. ARGUMENTS

t
    the stacking driver limits (top device)

b
    the underlying queue limits (bottom, component device)

start
    first data sector within component device

4. DESCRIPTION

This function is used by stacking drivers like MD and DM to ensure that all component devices have compatible block sizes and alignments. The stacking driver must provide a queue_limits struct (top) and then iteratively call the stacking function for all component (bottom) devices. The stacking function will attempt to combine the values and ensure proper alignment.

Returns 0 if the top and bottom queue_limits are compatible. The top deviceAqs block sizes and alignment offsets may be adjusted to ensure alignment with the bottom device. If no compatible sizes and alignments exist, -1 is returned and the resulting top queue_limits will have the misaligned flag set to indicate that the alignment_offset is undefined.

5. COPYRIGHT