On Tue, Jan 19 2016 at 10:32pm -0500, Eric Wheeler <dm-devel@xxxxxxxxxxxxxxxxxx> wrote: > Hello all, > > dm_target->len gives me sector count, but I need to know the default > sector size discovered by the blk stacking code without assuming 512b. > > Now that I have the dm .iterate_devices callback defined and my > queue_limits are sane by default, how can I get a pointer to the > queue_limits structure for my device given a dm_target structure? > > It looks like I should call dm_get_md_queue() after getting the md from > dm_table_get_md(target->table), but dm_get_md_queue is not an exported > symbol. > > Also, is that value correct within the .ctr, or only after the .ctr > returns? If after, how can I hook in after limits are assigned but before > .map gets called? Otherwise stated, I would like to know the stacked > queue_limits corrected for lower layers within the .ctr function. You cannot know it from .ctr because the device is actively being constructed. The .io_hints hook allows you access to stacked queue_limits -- see dm_calculate_queue_limits() which calls ->io_hints _after_ combining all underlying queue_limits. See dm-thin.c's pool_io_hints() and thin_io_hints() for examples of how the .io_hints hook is used for DM-thinp. Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel