• Naohiro Aota's avatar
    btrfs: zoned: wait until zone is finished when allocation didn't progress · 2ce543f4
    Naohiro Aota authored
    When the allocated position doesn't progress, we cannot submit IOs to
    finish a block group, but there should be ongoing IOs that will finish a
    block group. So, in that case, we wait for a zone to be finished and retry
    the allocation after that.
    
    Introduce a new flag BTRFS_FS_NEED_ZONE_FINISH for fs_info->flags to
    indicate we need a zone finish to have proceeded. The flag is set when the
    allocator detected it cannot activate a new block group. And, it is cleared
    once a zone is finished.
    
    CC: stable@vger.kernel.org # 5.16+
    Fixes: afba2bc0
    
     ("btrfs: zoned: implement active zone tracking")
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    2ce543f4
disk-io.c 146 KB