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/25 19:47, David Sterba 写道: > On Mon, May 25, 2026 at 08:00:30AM +0200, Christoph Hellwig wrote: >> On Sat, May 23, 2026 at 04:23:44PM +0200, David Sterba wrote: >>> 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. >> >> It absolutely is. Adding fast path workarounds for this is completely >> stupid when it can be trivially handled on the mount side. > > It's a lazy hack at best and fix on absolutely wrong layer. The library > should provide the support for the edge case. But we disagree on that. I strongly disagree. Firstly on the layer to fix, let me be clear, if something writes like RAID1, reads like RAID1, repairs like RAID1, then it's RAID1. With that mindset, changing chunk type at read/add time is exactly the correct layer to fix. Or let me change the title of the patch, ENHANCE single-data-RAID56 handling to get rid all the corner cases. Do you still think that's the wrong correct layer to fix? So the wrong layer argument doesn't stand. If you're so focused on fixing the problem in the library layer, then all you can see is to put some adhoc fixes to emulate the library fix. Furthermore, we are already doing all the warning about 2-disk raid5, now I'm providing a solution that is as mature as RAID1, now you're complaining about the simplicity but wants all the complex striping and reduced read performance? I don't see any point in this.