On Oct 22, 7:26am, m...@eterna.com.au (matthew green) wrote: -- Subject: re: [patch] - add support for >2TB raid devices
| | > >+ if (c_label->version == RF_COMPONENT_LABEL_VERSION) | > >+ c_label->partitionSizeHi = | > >+ raidPtr->Disks[fcol].partitionSize >> 32; | > | > All these tests should really be: | > | > + if (c_label->version > RF_COMPONENT_LABEL_VERSION_1) | > + c_label->partitionSizeHi = | > + raidPtr->Disks[fcol].partitionSize >> 32; | > | > because if you bump the version to version 3, then you will | > not execute the code for version 2 which already supported it. | | i'm not sure this is right. it isn't the current style used for | the old checks, and who said that verison 3 has the same layout? Well, I think that the old check is wrong. Let's say that you have a bunch of disks with a version 2 label on NetBSD-6. Now you are booting a NetBSD-7 kernel to upgrade that has code for version 3. The test will fail; partitionSizeHi will not be set and you are going to corrupt your filesystem. Is that what we want? christos