Re: [PATCH v8 01/11] btrfs: add raid stripe tree definitions

From: Johannes Thumshirn
Date: Wed Sep 13 2023 - 10:57:57 EST


On 13.09.23 16:50, David Sterba wrote:
> On Wed, Sep 13, 2023 at 06:02:09AM +0000, Johannes Thumshirn wrote:
>> On 12.09.23 22:32, David Sterba wrote:
>>>> @@ -306,6 +306,16 @@ BTRFS_SETGET_FUNCS(timespec_nsec, struct btrfs_timespec, nsec, 32);
>>>> BTRFS_SETGET_STACK_FUNCS(stack_timespec_sec, struct btrfs_timespec, sec, 64);
>>>> BTRFS_SETGET_STACK_FUNCS(stack_timespec_nsec, struct btrfs_timespec, nsec, 32);
>>>>
>>>> +BTRFS_SETGET_FUNCS(stripe_extent_encoding, struct btrfs_stripe_extent, encoding, 8);
>>>
>>> What is encoding referring to?
>>
>> At the moment (only) the RAID type. But in the future it can be expanded
>> to all kinds of encodings, like Reed-Solomon, Butterfly-Codes, etc...
>
> I see, could it be better called ECC? Like stripe_extent_ecc, that would
> be clear that it's for the correction, encoding sounds is too generic.

Hmm but for RAID0 there is no correction, so not really as well. I'd
suggest 'type', but I /think/ for RAID5/6 we'll need type=data and
type=parity (and future ECC as well).

Maybe level, as in RAID level? I know currently it is redundant, as we
can derive it from the block-group.