This is the updated patch 4/4 of the series "Zone write plugging and DM zone fixes". This patch fixes DM zone resource limits stacking (max open zones and max active zones limits). Patch 1 is new and is added to help catch problems and eventual regressions of the handling of these limits. Changes from v6: - Modified patch 3 as suggested by Niklas (moved the increment of zlim->mapped_nr_seq_zones after handling zc.target_nr_seq_zones == 0) - Rebased on rc3 - Added review tags Changes from v5: - Corrected typo in comment in patch 2 - Simplyfied patch 3 by removing the function dm_set_zone_resources() and integrating its code directly in dm_set_zone_restrictions(). - Added review tags Changes from v4: - Fixed a typo in a comment in patch 1 - Added patch 2 and changed patch 3 accordingly - Added review tags Changes from v3: - Modify patch 1 to always check the zone resource limits values in disk_update_zone_resources(), including for DM devices that do not use zone write plugging. Simplify patch 2 accordingly by removing the same check and adjustment of the zone resource limits. - Added patch 3 Changes from v2: - Modify patch 1 to return an error for the case where the max open zones limit is greater than the max active zones limit. - Modify patch 2 to avoid duplicated actions on the limits and to remove warnings for unusual zone limits. Changes from v1: - Added patch 1 - Modified patch 2 to not cap the limits for a target with the number of sequential zones mapped but rather to use the device limits as is when more zones than the limits are mapped and 0 otherwise (no limits). Damien Le Moal (4): block: Improve checks on zone resource limits dm: Call dm_revalidate_zones() after setting the queue limits dm: Improve zone resource limits handling dm: Remove unused macro DM_ZONE_INVALID_WP_OFST block/blk-settings.c | 8 ++ block/blk-zoned.c | 20 ++++- drivers/md/dm-table.c | 15 +++- drivers/md/dm-zone.c | 205 ++++++++++++++++++++++++++++++++---------- drivers/md/dm.h | 1 + 5 files changed, 195 insertions(+), 54 deletions(-) -- 2.45.2