Re: regression: mdadm detects dm-device as partition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

在 2024/03/21 17:17, Mateusz Kusiak 写道:
Hello,
We discovered an issue when trying to create imsm container with mdadm on dm-device.

The scenario is as follows:

1. Create dm device
# echo -e '0 195312 linear /dev/nvme2n1 0' | dmsetup create nvme2n1DM

2. Create IMSM container.
# dmdev=$(readlink -f /dev/mapper/nvme2n1DM)
# export IMSM_DEVNAME_AS_SERIAL=1 IMSM_NO_PLATFORM=1; mdadm --create /dev/md/container --metadata=imsm --raid-disks=1 $dmdev --force

Result:

Error message is displayed
# mdadm: imsm: /dev/dm-0 is a partition, cannot be used in IMSM

Mdadm's function for checking "if partition" looks like so.

int test_partition(int fd)
{
     /* Check if fd is a whole-disk or a partition.
      * BLKPG will return EINVAL on a partition, and BLKPG_DEL_PARTITION
      * will return ENXIO on an invalid partition number.
      */
     struct blkpg_ioctl_arg a;
     struct blkpg_partition p;
     a.op = BLKPG_DEL_PARTITION;
     a.data = (void*)&p;
     a.datalen = sizeof(p);
     a.flags = 0;
     memset(a.data, 0, a.datalen);
     p.pno = 1<<30;
     if (ioctl(fd, BLKPG, &a) == 0)
         /* Very unlikely, but not a partition */
         return 0;
     if (errno == ENXIO || errno == ENOTTY)
         /* not a partition */
         return 0;

     return 1;
}

I plugged in with debugger and established that when ioctl is run on dm-device errno is EINVAL, as if it was a partition.

This is a known regression, reported here:

https://lore.kernel.org/all/CAOYeF9VsmqKMcQjo1k6YkGNujwN-nzfxY17N3F-CMikE1tYp+w@xxxxxxxxxxxxxx/

please try this patch:

https://lore.kernel.org/all/20240118130401.792757-1-lilingfeng@xxxxxxxxxxxxxxx/

Thanks,
Kuai


The issue is reproducible only with newer kernels which leads me te believe there is a regression in device mapper. This code has been working stable for last 10+ years, which is another reason. I tested this on RHEL 8.9 with inbox 5.14 kernel and 6.5.7-1 I happen to have installed. The issue reproduced only on 6.5.7-1 kernel. I also observed same regression on stock Ubuntu 24.04 with inbox 6.6.0 kernel.

Can you please point me to when it was introduced and are there any plans for fixing it?

Thanks,
Mateusz

.






[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux