diff options
author | Neil Brown <neilb@suse.de> | 2006-06-26 12:26:09 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-06-26 12:26:09 +1000 |
commit | 7eae7080e2e9edd69d31ae2c88d9e28d1c24217c (patch) | |
tree | 4418e400c725690d29f3e66752515bab63f3fe77 /super1.c | |
parent | c3684618b7cc50a12a651bf2f83f62b24ba95bcd (diff) | |
download | mdadm-7eae7080e2e9edd69d31ae2c88d9e28d1c24217c.tar.gz mdadm-7eae7080e2e9edd69d31ae2c88d9e28d1c24217c.tar.xz mdadm-7eae7080e2e9edd69d31ae2c88d9e28d1c24217c.zip |
Work around bug in --add handling for version-1 superblocks
In 2.6.17 (and prior), the dev_number is ignored when a device
is added to an active array. Rather the first free number is used.
So we work around this by making sure we use the first free
number for dev_number.
Description...
Diffstat (limited to 'super1.c')
-rw-r--r-- | super1.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -779,7 +779,11 @@ static int write_init_super1(struct supertype *st, void *sbv, if (memcmp(sb->set_uuid, refsb->set_uuid, 16)==0) { /* same array, so preserve events and dev_number */ sb->events = refsb->events; - sb->dev_number = refsb->dev_number; + /* bugs in 2.6.17 and earlier mean the dev_number + * chosen in Manage must be preserved + */ + if (get_linux_version() >= 2006018) + sb->dev_number = refsb->dev_number; } free(refsb); } |