Skip to content

Commit d2f7c42

Browse files
committed
md: delete mddev kobj before deleting gendisk kobj
JIRA: https://issues.redhat.com/browse/RHEL-94433 Upstream Status: RHEL-Only In sync del gendisk path, it deletes gendisk first and the directory /sys/block/md is removed. Then it releases mddev kobj in a delayed work. If we enable debug log in sysfs_remove_group, we can see the debug log 'sysfs group bitmap not found for kobject md'. It's the reason that the parent kobj has been deleted, so it can't find parent directory. In creating path, it allocs gendisk first, then adds mddev kobj. So it should delete mddev kobj before deleting gendisk. Before commit 9e59d60 ("md: call del_gendisk in control path"), it releases mddev kobj first. If the kobj hasn't been deleted, it does clean job and deletes the kobj. Then it calls del_gendisk and releases gendisk kobj. So it doesn't need to call kobject_del to delete mddev kobj. After this patch, in sync del gendisk path, the sequence changes. So it needs to call kobject_del to delete mddev kobj. After this patch, the sequence is: 1. kobject del mddev kobj 2. del_gendisk deletes gendisk kobj 3. mddev_delayed_delete releases mddev kobj 4. md_kobj_release releases gendisk kobj Fixes: 9e59d60 ("md: call del_gendisk in control path") Signed-off-by: Xiao Ni <xni@redhat.com> Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
1 parent 10b8a83 commit d2f7c42

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/md/md.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -888,8 +888,10 @@ void mddev_unlock(struct mddev *mddev)
888888
* do_md_stop. dm raid only uses md_stop to stop. So dm raid
889889
* doesn't need to check MD_DELETED when getting reconfig lock
890890
*/
891-
if (test_bit(MD_DELETED, &mddev->flags))
891+
if (test_bit(MD_DELETED, &mddev->flags)) {
892+
kobject_del(&mddev->kobj);
892893
del_gendisk(mddev->gendisk);
894+
}
893895
}
894896
}
895897
EXPORT_SYMBOL_GPL(mddev_unlock);

0 commit comments

Comments
 (0)