Hi,
has somebody analyzed this issue?
** Package changed: ubuntu => linux (Ubuntu)
--
You received this bug notification because you are subscribed to linux
in Ubuntu.
Matching subscriptions: Bgg, Bmail, Nb
https://bugs.launchpad.net/bugs/2059092
Title:
[VROC] mdadm detects dm-device as partition
Status in linux package in Ubuntu:
New
Bug description:
We discovered an issue when trying to create imsm container with mdadm
on dm-device.
Environment:
OS: Ubuntu 24.04
Kernel: inbox 6.6.0
Scenario:
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
Expected result:
Container is created.
Actual result:
Error message is displayed
# mdadm: imsm: /dev/dm-0 is a partition, cannot be used in IMSM
Container is not created.
Additional info:
Mdadm uses ioctl call underneath to check if device is a partition.
Here's the function:
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;
}
We established that the behavior is caused by regression in ioctl.
Thread: https://lore.kernel.org/all/CAOYeF9VsmqKMcQjo1k6YkGNujwN-nzfxY17N3F-CMikE1tYp+w@mail.gmail.com/
Fix: https://lore.kernel.org/all/20240118130401.792757-1-lilingfeng@huaweicloud.com/
We established that ioctl call on dm-device returns EINVAL as if it was a partition.
Note that this function was was working unchanged for last 10+years and the issue was fixed in newer kenel.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2059092/+subscriptions
Комментариев нет:
Отправить комментарий