• Damien Le Moal's avatar
    null_blk: Do zone resource management only if necessary · 3bdde070
    Damien Le Moal authored
    For zoned null_blk devices setup without any limit on the maximum number
    of open and active zones, there is no need to count the number of zones
    that are implicitly open, explicitly open and closed. This is indicated
    by the boolean field need_zone_res_mgmt of sturct nullb_device.
    
    Modify the zone management functions null_reset_zone(),
    null_finish_zone(), null_open_zone() and null_close_zone() to manage
    the zone condition counters only if the device need_zone_res_mgmt field
    is true. With this change, the function __null_close_zone() is removed
    and integrated into the 2 caller sites directly, with the
    null_close_imp_open_zone() call site greatly simplified as this function
    closes zones that are known to be in the implicit open condition.
    
    null_zone_write() is modified in a similar manner to do zone condition
    accouting only when the device need_zone_res_mgmt field is true.
    
    With these changes, the inline helpers null_lock_zone_res() and
    null_unlock_zone_res() are removed and replaced with direct calls to
    spin_lock()/spin_unlock().
    Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
    Link: https://lore.kernel.org/r/20240411085502.728558-3-dlemoal@kernel.orgSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    3bdde070
zoned.c 19.1 KB