10/16/23 04:02, Klemens Nanni пишет:
> 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?

Ping.

> 
> 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;
> 

Reply via email to