On 02/02/2021 15:58, David Sterba wrote:
>> static int check_async_write(struct btrfs_fs_info *fs_info,
>> struct btrfs_inode *bi)
>> {
>> + if (btrfs_is_zoned(fs_info))
>> + return 0;
> This check need to be after the other ones as zoned is a static per-fs
> status, while other others depend on either current state or system
> state (crypto implementation).
>
>> if (atomic_read(&bi->sync_writers))
>> return 0;
>> if (test_bit(BTRFS_FS_CSUM_IMPL_FAST, &fs_info->flags))
Can you explain the reasoning behind that rule? For a non-zoned FS this won't
make a huge difference to check fs_info->zoned and for a zoned FS we're
bailing out fast as we can't support async checksums.