When Kill() cannot open device or find superblock it return the same
error and mdadm ignores it.
Change error handling in Kill() function. Return error if device is
busy, ignore it only when superblock doesn't exist- assume that metadata
is zeroed.
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@intel.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
* Returns:
* 0 - a zero superblock was successfully written out
* 1 - failed to write the zero superblock
- * 2 - failed to open the device or find a superblock.
+ * 2 - failed to open the device.
+ * 4 - failed to find a superblock.
*/
int fd, rv = 0;
if (verbose >= 0)
pr_err("Unrecognised md component device - %s\n", dev);
close(fd);
- return 2;
+ return 4;
}
st->ignore_hw_compat = 1;
rv = st->ss->load_super(st, fd, dev);
rv |= Kill(dv->devname, NULL, c->force, v, 0);
v = -1;
} while (rv == 0);
- rv &= ~2;
+ rv &= ~4;
}
continue;
case 'Q':