• Naohiro Aota's avatar
    btrfs: zoned: deal with holes writing out tree-log pages · b528f467
    Naohiro Aota authored
    Since the zoned filesystem requires sequential write out of metadata, we
    cannot proceed with a hole in tree-log pages. When such a hole exists,
    btree_write_cache_pages() will return -EAGAIN. This happens when someone,
    e.g., a concurrent transaction commit, writes a dirty extent in this
    tree-log commit.
    
    If we are not going to wait for the extents, we can hope the concurrent
    writing fills the hole for us. So, we can ignore the error in this case and
    hope the next write will succeed.
    
    If we want to wait for them and got the error, we cannot wait for them
    because it will cause a deadlock. So, let's bail out to a full commit in
    this case.
    Reviewed-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    b528f467
tree-log.c 174 KB