From 7eae7080e2e9edd69d31ae2c88d9e28d1c24217c Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 26 Jun 2006 12:26:09 +1000 Subject: 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... --- super1.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'super1.c') diff --git a/super1.c b/super1.c index 6862155..8e6703b 100644 --- a/super1.c +++ b/super1.c @@ -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); } -- cgit