Re: [PATCH 3/3] btrfs: disguise single-data-RAID56 as RAID1/RAID1C3
Qu Wenruo <[email protected]>
| Newsgroups | gmane.linux.raid,gmane.comp.file-systems.btrfs |
|---|---|
| Message-ID | <[email protected]> |
在 2026/5/23 23:53, David Sterba 写道: > On Fri, May 22, 2026 at 06:53:53PM +0930, Qu Wenruo wrote: >> Recently kernel RAID56 lib is trying to remove the unexpected >> single-data-RAID56 (2 disks RAID5 or 3 disk RAID5) support, meanwhile >> btrfs still supports such setup, which means in the long run btrfs has >> to handle such corner case by ourselves. >> >> Thankfully single-data-RAID56 is really RAID1/RAID1C3, since data and >> P/Q stripes all match each other, rotation also makes no difference. >> >> This patch will disguise those single-data-RAID56 chunks as >> RAID1/RAID1C3 chunks. > > I don't think this is the right way to fix it. Calculations are an > implementation detail and should be done at the time of the xor_gen or > raid6_call, not touching the upper level structures related to format. > > Instead, please add helpers that take the same parameters and do the > switch if there's the edge case of raid5 or raid6, using memcpy. Thanks. I'd say going dedicated memcpy() is an adhoc fix, and not any easier to maintain. Now you have two paths, one from the raid56 lib, one from the btrfs specific handling for the single-data specific corner case, and that no one else is going to review/utilize that corner case. From this point of view, reusing the existing RAID1/RAID1C3 is way more reliable and sane.