]> git.ipfire.org Git - thirdparty/mdadm.git/commit
mdadm/Detail: Can't show container name correctly when unpluging disks
authorXiao Ni <xni@redhat.com>
Wed, 27 Oct 2021 12:23:14 +0000 (20:23 +0800)
committerJes Sorensen <jsorensen@fb.com>
Tue, 2 Nov 2021 16:09:51 +0000 (12:09 -0400)
commit8e1a258ecbc239c04052b3f36ed57e62da71a19e
tree027d4a8090ec1e8b34dad19e9718dc40b03ef404
parenta35aa68fef246a3eb6bc995cd7af75af420418cc
mdadm/Detail: Can't show container name correctly when unpluging disks

The test case is:
1. create one imsm container
2. create a raid5 device from the container
3. unplug two disks
4. mdadm --detail /dev/md126
[root@rhel85 ~]# mdadm -D /dev/md126
/dev/md126:
         Container : ��, member 0

The Detail function first gets container name by function
map_dev_preferred. Then it tries to find which disks are
available. In patch db5377883fef(It should be FAILED..)
uses map_dev_preferred to find which disks are under /dev.

But now, the major/minor information comes from kernel space.
map_dev_preferred malloc memory and init a device list when
first be called by Detail. It can't find the device in the
list by the major/minor. It free the memory and reinit the
list.

The container name now points to an area tha has been freed.
So the containt is a mess.

This patch replaces map_dev_preferred with access.

Fixes: db5377883fef (It should be FAILED when raid has)
Signed-off-by: Xiao Ni <xni@redhat.com>
Reported-by: Fine Fan <ffan@redhat.com>
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Detail.c