Bug 1878970
Summary: | kernel-5.8.8-200.fc32.x86_64 - IMSM RAID not recognized | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Clay Jordan <claywj> | ||||||
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | ||||||
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | high | Docs Contact: | |||||||
Priority: | unspecified | ||||||||
Version: | 32 | CC: | acaringi, airlied, bskeggs, hdegoede, ichavero, ipilcher, itamar, jarodwilson, jeremy, jglisse, john.j5live, jonathan, josef, kernel-maint, lgoncalv, linville, masami256, mchehab, Michael.Riss, mjg59, steved | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2020-09-15 22:08:55 UTC | Type: | Bug | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Attachments: |
|
Description
Clay Jordan
2020-09-15 05:19:48 UTC
I just saw something similar. In my case, only my /boot filesystem in on the IMSM RAID, so it was easy enough to boot by commenting out that line in /etc/fstab. For whatever reason, it appears that the IMSM (Intel RAID) signature isn't recognized by the new kernel. Running 5.8.7-200.fc32.x86_64 (which works), I get the following: [pilcher@ian ~]$ uname -r 5.8.7-200.fc32.x86_64 [pilcher@ian ~]$ sudo mdadm --detail-platform Platform : Intel(R) Rapid Storage Technology Version : 11.2.0.1527 RAID Levels : raid0 raid1 raid10 raid5 Chunk Sizes : 4k 8k 16k 32k 64k 128k 2TB volumes : supported 2TB disks : supported Max Disks : 6 Max Volumes : 2 per array, 4 per controller I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA) Port3 : /dev/sdd (MSK5235H2PJ7TG) Port1 : /dev/sdb (43P2YEVGS) Port2 : /dev/sdc (MSK5235H29X18G) Port5 : - non-disk device (HL-DT-ST BD-RE WH16NS60) - Port0 : /dev/sda (S21CNSAG402179X) Port4 : - no device attached - [pilcher@ian ~]$ sudo mdadm --examine --verbose /dev/sdc /dev/sdc: Magic : Intel Raid ISM Cfg Sig. Version : 1.1.00 Orig Family : d7e8a7e3 Family : d7e8a7e3 Generation : 005a1992 Attributes : All supported UUID : 1ebd7712:2a74af1f:34298316:cb855b50 Checksum : d22bf36a correct MPB Sectors : 1 Disks : 2 RAID Devices : 1 Disk00 Serial : MSK5235H29X18G State : active Id : 00000002 Usable Size : 1953519616 (931.51 GiB 1000.20 GB) [Volume0]: UUID : 3d7bd72f:82a8cbcc:2d217397:12f3ff95 RAID Level : 1 Members : 2 Slots : [UU] Failed disk : none This Slot : 0 Sector Size : 512 Array Size : 1953519616 (931.51 GiB 1000.20 GB) Per Dev Size : 1953519880 (931.51 GiB 1000.20 GB) Sector Offset : 0 Num Stripes : 7630936 Chunk Size : 64 KiB Reserved : 0 Migrate State : idle Map State : normal Dirty State : clean RWH Policy : off Disk01 Serial : MSK5235H2PJ7TG State : active Id : 00000003 Usable Size : 1953519616 (931.51 GiB 1000.20 GB) But running 5.8.8-200.fc32.x86_64 I see: [pilcher@ian system]$ uname -r 5.8.8-200.fc32.x86_64 [pilcher@ian system]$ sudo mdadm --detail-platform Platform : Intel(R) Rapid Storage Technology Version : 11.2.0.1527 RAID Levels : raid0 raid1 raid10 raid5 Chunk Sizes : 4k 8k 16k 32k 64k 128k 2TB volumes : supported 2TB disks : supported Max Disks : 6 Max Volumes : 2 per array, 4 per controller I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA) Port3 : /dev/sdd (MSK5235H2PJ7TG) Port1 : /dev/sdb (43P2YEVGS) Port2 : /dev/sdc (MSK5235H29X18G) Port5 : - non-disk device (HL-DT-ST BD-RE WH16NS60) - Port0 : /dev/sda (S21CNSAG402179X) Port4 : - no device attached - [pilcher@ian system]$ sudo mdadm --examine --verbose /dev/sdc /dev/sdc: MBR Magic : aa55 Partition[0] : 204800 sectors at 2048 (type 07) Partition[1] : 2048000 sectors at 206848 (type 83) Partition[2] : 61440000 sectors at 2254848 (type 07) Partition[3] : 1889824768 sectors at 63694848 (type 05) Created attachment 1714949 [details]
Output of 'strace mdadm --examine --verbose /dev/sdc' on kernel 5.8.7 (works)
Created attachment 1714950 [details]
Output of 'strace mdadm --examine --detail /dev/sdc' on kernel 5.8.8 (doesn't work)
I've just attached the strace output of 'mdadm --examine --verbose /dev/sdc' on both kernel 5.8.7 (works) and 5.8.8 (doesn't work). The first significant difference I see is on line 185, where the error code returned by the BLKPG_DEL_PARTITION ioctl has changed from ENXIO to ENOMEM. git bisect says: 692d0626557451c4b557397f20b7394b612d0289 is the first bad commit commit 692d0626557451c4b557397f20b7394b612d0289 Author: Christoph Hellwig <hch> Date: Tue Sep 1 11:59:41 2020 +0200 block: fix locking in bdev_del_partition [ Upstream commit 08fc1ab6d748ab1a690fd483f41e2938984ce353 ] We need to hold the whole device bd_mutex to protect against other thread concurrently deleting out partition before we get to it, and thus causing a use after free. Fixes: cddae808aeb7 ("block: pass a hd_struct to delete_partition") Reported-by: syzbot+6448f3c229bc52b82f69.com Signed-off-by: Christoph Hellwig <hch> Signed-off-by: Jens Axboe <axboe> Signed-off-by: Sasha Levin <sashal> block/partitions/core.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) And fixed by: commit 88ce2a530cc9865a894454b2e40eba5957a60e1a Author: Christoph Hellwig <hch> Date: Tue Sep 8 16:15:06 2020 +0200 block: restore a specific error code in bdev_del_partition mdadm relies on the fact that deleting an invalid partition returns -ENXIO or -ENOTTY to detect if a block device is a partition or a whole device. Fixes: 08fc1ab6d748 ("block: fix locking in bdev_del_partition") Reported-by: kernel test robot <rong.a.chen> Signed-off-by: Christoph Hellwig <hch> Signed-off-by: Jens Axboe <axboe> diff --git a/block/partitions/core.c b/block/partitions/core.c index 5b4869c08fb3..722406b841df 100644 --- a/block/partitions/core.c +++ b/block/partitions/core.c @@ -537,7 +537,7 @@ int bdev_del_partition(struct block_device *bdev, int partno) bdevp = bdget_disk(bdev->bd_disk, partno); if (!bdevp) - return -ENOMEM; + return -ENXIO; mutex_lock(&bdevp->bd_mutex); mutex_lock_nested(&bdev->bd_mutex, 1); Fixed in kernel-5.8.9-200.fc32.x86_64. Update with 'dnf --enablerepo=updates-testing update kernel'. Thank you Ian. That was amazingly fast. I had a chance to install the kernel this evening and can confirm it is fixed. |