On Tue, Feb 02, 2021 at 04:50:26PM +0000, Johannes Thumshirn wrote:
> 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.

On first sight it looked like a special case for zoned while it's not
the major usecase but the test is cheap and fast, it's ok to keep it
first.

Reply via email to