http://bugzilla.suse.com/show_bug.cgi?id=1033098 http://bugzilla.suse.com/show_bug.cgi?id=1033098#c3 Neil Brown <nfbrown@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |CONFIRMED --- Comment #3 from Neil Brown <nfbrown@suse.com> --- Look in the strace for where process 1691 exits, and just before there we see: open("/sys/block//md//sync_max", O_RDWR) Clearly there is something wrong with that file name. It should be /sys/block/md0/md//sync_max Looking at earlier calls in the strace, and comparing with code in Grow_continue_command, it is quiet easy to identify 1691 ioctl(3, GET_ARRAY_INFO, 0x7fff1181b040) = 0 then 1691 ioctl(3, GET_DISK_INFO, 0x7fff1181b020) = 0 and then the strace shows /dev/ being scanned by map_dev() This continues to 1691 open("/dev/loop0", O_RDONLY|O_DIRECT) = 4 which matches fd2 = dev_open(dv, O_RDONLY); in the code. A little later is the call if (verify_reshape_position(content, content->array.level) < 0) { and it is verify_reshape_position() which tries to read sync_max, and fails. It expects to find the array name (md0) in 'info' which is passed from the variable 'content' which was set content = &array; But array.sys_name is never set. It should set by a call to sysfs_init() The else branch of "if (st->ss->external == 0) {" in Grow_continue_command() contains a call to sysfs_init(), but the 'then' branch doesn't. Can you try adding a call like sysfs_init(content, fd, NULL); after content = &array; in Grow_continue_command(), and see if that fixes the problem? -- You are receiving this mail because: You are on the CC list for the bug.