Re: [PATCH v4 6/7] dm: Directly disable max_allocate_sectors for now

From: Kirill Tkhai
Date: Tue Jan 21 2020 - 07:37:44 EST


On 21.01.2020 15:24, Mike Snitzer wrote:
> On Tue, Jan 21 2020 at 5:42am -0500,
> Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> wrote:
>
>> Since dm inherits limits from underlining block devices,
>> this patch directly disables max_allocate_sectors for dm
>> till full allocation support is implemented.
>>
>> This prevents high-level primitives (generic_make_request_checks(),
>> __blkdev_issue_write_zeroes(), ...) from sending REQ_ALLOCATE
>> requests.
>>
>> Signed-off-by: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx>
>> ---
>> drivers/md/dm-table.c | 2 ++
>> drivers/md/md.h | 1 +
>> 2 files changed, 3 insertions(+)
>
> You're mixing DM and MD changes in the same patch.
>
> But I'm wondering if it might be best to set this default for stacking
> devices in blk_set_stacking_limits()?
>
> And then it is up to each stacking driver to override as needed.

Hm. Sound like a good idea. This "lim->max_allocate_sectors = 0" in blk_set_stacking_limits()
should work for dm's dm_calculate_queue_limits(), since it calls blk_stack_limits(), which is:

t->max_allocate_sectors = min(t->max_allocate_sectors,
b->max_allocate_sectors);

Could you please tell is this fix is also enough for md?

Kirill