• Naohiro Aota's avatar
    btrfs: zoned: finish fully written block group · be1a1d7a
    Naohiro Aota authored
    If we have written to the zone capacity, the device automatically
    deactivates the zone. Sync up block group side (the active BG list and
    zone_is_active flag) with it.
    
    We need to do it both on data BGs and metadata BGs. On data side, we add a
    hook to btrfs_finish_ordered_io(). On metadata side, we use
    end_extent_buffer_writeback().
    
    To reduce excess lookup of a block group, we mark the last extent buffer in
    a block group with EXTENT_BUFFER_ZONE_FINISH flag. This cannot be done for
    data (ordered_extent), because the address may change due to
    REQ_OP_ZONE_APPEND.
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    be1a1d7a
extent_io.c 194 KB