Hi Song, hi Yu, this series fixes problems I found when testing how md handles trying to creat an array with disks that support incompatible protection information or a mix of protection information and not protection information. Note that this only fixes the oops due to the double frees. After the attempt to at the incompatible device the /dev/md0 node is still around with zero blocks and linked to the the previous devices in sysfs which is a bit confusing, but unrelated to the resource cleanup touched here. raid10 and raid5 also free conf on failure in their ->run handle, but set mddev->private to NULL which prevents the double free as well (but requires more code) Diffstat: raid0.c | 21 +++++---------------- raid1.c | 14 +++----------- 2 files changed, 8 insertions(+), 27 deletions(-)