diff options
author | NeilBrown <neilb@suse.de> | 2011-05-10 16:20:25 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-05-10 16:20:25 +1000 |
commit | 873eec468c0b1b32332b5e4dd6b31e878e0e60e0 (patch) | |
tree | 85b345f15eacb36df8c8dae782408ee423ffd2f3 /Manage.c | |
parent | 0f23aa88f81127eae744d60eedd4884f021562d0 (diff) | |
download | mdadm-873eec468c0b1b32332b5e4dd6b31e878e0e60e0.tar.gz |
Manage: minor fix to add/re-add handling.
If using an old kernel we should still check if a re-add might be
intended, so we can refuse and require a '--zero' first if it is not
possible.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Manage.c')
-rw-r--r-- | Manage.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -704,13 +704,7 @@ int Manage_subdevs(char *devname, int fd, */ tst->ss->uuid_from_super(tst, duuid); - /* re-add doesn't work for version-1 superblocks - * before 2.6.18 :-( - */ - if (array.major_version == 1 && - get_linux_version() <= 2006018) - ; - else if (st->sb) { + if (st->sb) { struct mdinfo mdi; st->ss->getinfo_super(st, &mdi, NULL); st->ss->uuid_from_super(st, ouuid); @@ -720,6 +714,12 @@ int Manage_subdevs(char *devname, int fd, /* look like it is worth a try. Need to * make sure kernel will accept it though. */ + /* re-add doesn't work for version-1 superblocks + * before 2.6.18 :-( + */ + if (array.major_version == 1 && + get_linux_version() <= 2006018) + goto skip_re_add; disc.number = mdi.disk.number; if (ioctl(fd, GET_DISK_INFO, &disc) != 0 || disc.major != 0 || disc.minor != 0 |