The current check implies one could use, e.g. SWAP or MSDOS partitions
as softraid(4) chunks, but sys/dev/softraid.c always expects FS_RAID,
thus using chunks with different partition types is not possible:
# vmctl create -s100M disk.img
# vnd=`vnconfig disk.img`
# echo 'swap *' | disklabel -wAT- vnd0
# disklabel $vnd | grep swap
a: 204800 0 swap
# bioctl -c c -l ${vnd}a softraid0
softraid0: invalid metadata format
Correct the check.
I don't expect this to break anything.
amd64 biosboot boots off standard RAID 'a' as before.
Feedback? Objection? OK?
Index: arch/amd64/stand/efiboot/dev_i386.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/stand/efiboot/dev_i386.c,v
retrieving revision 1.1
diff -u -p -r1.1 dev_i386.c
--- arch/amd64/stand/efiboot/dev_i386.c 10 May 2019 21:20:42 -0000 1.1
+++ arch/amd64/stand/efiboot/dev_i386.c 16 Oct 2023 00:33:14 -0000
@@ -149,7 +149,7 @@ devboot(dev_t bootdev, char *p)
}
#endif
- if (sr_boot_vol != -1 && part_type != FS_BSDFFS) {
+ if (sr_boot_vol != -1 && part_type == FS_RAID) {
*p++ = 's';
*p++ = 'r';
*p++ = '0' + sr_boot_vol;
Index: arch/amd64/stand/libsa/dev_i386.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/stand/libsa/dev_i386.c,v
retrieving revision 1.23
diff -u -p -r1.23 dev_i386.c
--- arch/amd64/stand/libsa/dev_i386.c 10 May 2019 21:20:43 -0000 1.23
+++ arch/amd64/stand/libsa/dev_i386.c 16 Oct 2023 00:31:35 -0000
@@ -132,7 +132,7 @@ devboot(dev_t bootdev, char *p)
}
#endif
- if (sr_boot_vol != -1 && part_type != FS_BSDFFS) {
+ if (sr_boot_vol != -1 && part_type == FS_RAID) {
*p++ = 's';
*p++ = 'r';
*p++ = '0' + sr_boot_vol;
Index: arch/arm64/stand/efiboot/efiboot.c
===================================================================
RCS file: /cvs/src/sys/arch/arm64/stand/efiboot/efiboot.c,v
retrieving revision 1.48
diff -u -p -r1.48 efiboot.c
--- arch/arm64/stand/efiboot/efiboot.c 12 May 2023 16:43:00 -0000 1.48
+++ arch/arm64/stand/efiboot/efiboot.c 16 Oct 2023 00:34:17 -0000
@@ -864,7 +864,7 @@ devboot(dev_t dev, char *p)
break;
}
- if (sr_boot_vol != -1 && part_type != FS_BSDFFS) {
+ if (sr_boot_vol != -1 && part_type == FS_RAID) {
strlcpy(p, "sr0a", 5);
p[2] = '0' + sr_boot_vol;
return;
Index: arch/i386/stand/libsa/dev_i386.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/stand/libsa/dev_i386.c,v
retrieving revision 1.43
diff -u -p -r1.43 dev_i386.c
--- arch/i386/stand/libsa/dev_i386.c 11 Sep 2016 17:52:47 -0000 1.43
+++ arch/i386/stand/libsa/dev_i386.c 16 Oct 2023 00:34:45 -0000
@@ -132,7 +132,7 @@ devboot(dev_t bootdev, char *p)
}
#endif
- if (sr_boot_vol != -1 && part_type != FS_BSDFFS) {
+ if (sr_boot_vol != -1 && part_type == FS_RAID) {
*p++ = 's';
*p++ = 'r';
*p++ = '0' + sr_boot_vol;
Index: arch/riscv64/stand/efiboot/efiboot.c
===================================================================
RCS file: /cvs/src/sys/arch/riscv64/stand/efiboot/efiboot.c,v
retrieving revision 1.6
diff -u -p -r1.6 efiboot.c
--- arch/riscv64/stand/efiboot/efiboot.c 5 Jul 2023 09:25:55 -0000
1.6
+++ arch/riscv64/stand/efiboot/efiboot.c 16 Oct 2023 00:35:14 -0000
@@ -742,7 +742,7 @@ devboot(dev_t dev, char *p)
break;
}
- if (sr_boot_vol != -1 && part_type != FS_BSDFFS) {
+ if (sr_boot_vol != -1 && part_type == FS_RAID) {
strlcpy(p, "sr0a", 5);
p[2] = '0' + sr_boot_vol;
return;