Re: [mdadm PATCH] Create: move STOP_ARRAY to abort_locked
From: Jes Sorensen <jes.sorensen@gmail.com>
Date: 2017-05-08 17:54:11
On 05/07/2017 09:50 PM, Zhilong Liu wrote:
On 05/05/2017 11:31 AM, Liu Zhilong wrote:quoted
On 05/04/2017 10:54 PM, Jes Sorensen wrote:quoted
On 05/04/2017 08:20 AM, Zhilong Liu wrote:quoted
Hi Jes, apply for review, this is a bug I ever encountered.Zhilong, Under what circumstances do you see this?Issued the command: linux-g0sr:/home/test # ./mdadm -CR /dev/md0 -l1 -n2 -b internal /dev/loop[0-1] --size 63 ... ... ... mdadm: Given bitmap chunk size not supported. linux-g0sr:/home/test # ls /dev/md0 /dev/md0 linux-g0sr:/home/test # ls /sys/block/md0/md/ array_size bitmap component_size level metadata_version raid_disks reshape_position safe_mode_delay array_state chunk_size layout max_read_errors new_dev reshape_direction resync_start create_mddev() writes the devnm to /sys/module/md_mod/parameter/new_array, then in md.c, module_param_call() called the 'set' function of add_named_array(), md_alloc() init_and_add the kobject for devm, finally the devnm device has created and sysfs has registered after create_mddev executed successfully. Thus it's better to STOP_ARRAY in any case after create_mddev() invoked.this patch depends on the kernel commit: 039b7225e6e9 ("md: allow creation of mdNNN arrays via md_mod/parameters/new_array") Neil's patch has set "mddev->hold_active = UNTIL_STOP", thus the STOP_ARRAY can work well on this situation.
OK now I am confused - are you saying this change will only work after Neil's kernel patch has been applied? That would be no good, mdadm needs to work on older kernels too. Jes