Re: [PATCH] btrfs: also add stripe entries for NOCOW writes
From: Johannes Thumshirn
Date: Mon Sep 23 2024 - 03:41:17 EST
On 23.09.24 09:28, Qu Wenruo wrote:
>
>
> 在 2024/9/23 16:15, Johannes Thumshirn 写道:
>> From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
>>
>> NOCOW writes do not generate stripe_extent entries in the RAID stripe
>> tree, as the RAID stripe-tree feature initially was designed with a
>> zoned filesystem in mind and on a zoned filesystem, we do not allow NOCOW
>> writes. But the RAID stripe-tree feature is independent from the zoned
>> feature, so we must also allow NOCOW writes for zoned filesystems.
>>
>> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
>
> Sorry I'm going to repeat myself again, I still believe if we insert an
> RST entry at falloc() time, it will be more consistent with the non-RST
> code.
>
> Yes, I known preallocated space will not need any read nor search RST
> entry, and we just fill the page cache with zero at read time.
>
> But the point of proper (not just dummy) RST entry for the whole
> preallocated space is, we do not need to touch the RST entry anymore for
> NOCOW/PREALLOCATED write at all.
>
> This makes the RST NOCOW/PREALLOC writes behavior to align with the
> non-RST code, which doesn't update any extent item, but only modify the
> file extent for PREALLOC writes.
Please re-read the patch. This is not a dummy RST entry but a real RST
entry for NOCOW writes.