dm table: allow targets without devices to set ->io_hints
authorMikulas Patocka <mpatocka@redhat.com>
Tue, 4 Apr 2023 15:14:26 +0000 (11:14 -0400)
committerMike Snitzer <snitzer@kernel.org>
Tue, 4 Apr 2023 17:30:17 +0000 (13:30 -0400)
In dm_calculate_queue_limits, add call to ->io_hints hook if the
target doesn't provide ->iterate_devices.

This is needed so the "error" and "zero" targets may support
discards. The 2 following commits will add their respective discard
support.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Tested-by: Milan Broz <gmazyland@gmail.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm-table.c

index 2055a758541de326ee9960d4f76fce9839059e00..119db5e010803563842b7b95e021705984e9e106 100644 (file)
@@ -1670,8 +1670,12 @@ int dm_calculate_queue_limits(struct dm_table *t,
 
                blk_set_stacking_limits(&ti_limits);
 
-               if (!ti->type->iterate_devices)
+               if (!ti->type->iterate_devices) {
+                       /* Set I/O hints portion of queue limits */
+                       if (ti->type->io_hints)
+                               ti->type->io_hints(ti, &ti_limits);
                        goto combine_limits;
+               }
 
                /*
                 * Combine queue limits of all the devices this target uses.