Hi, While testing raid1 (raidsetfaulty, raidhotremove, raidhotadd, repeat), I managed to get one raid set in a state where nr_disks was incorrect. This became a problem when trying to use lilo, because it would only write to one of the disks (since nr_disks was 1). With one disk in the set nr_disks was 0: Aug 2 13:15:00 hotbox kernel: RAID1 conf printout: Aug 2 13:15:00 hotbox kernel: --- wd:1 rd:2 nd:0 Aug 2 13:15:00 hotbox kernel: disk 0, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00] Aug 2 13:15:00 hotbox kernel: disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sda1 Aug 2 13:15:00 hotbox kernel: disk 2, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00] Aug 2 13:15:00 hotbox kernel: disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00] After adding a disk nr_disks was 1: Aug 2 13:15:01 hotbox kernel: RAID1 conf printout: Aug 2 13:15:01 hotbox kernel: --- wd:1 rd:2 nd:1 Aug 2 13:15:01 hotbox kernel: disk 0, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00] Aug 2 13:15:01 hotbox kernel: disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sda1 Aug 2 13:15:01 hotbox kernel: disk 2, s:1, o:0, n:2 rd:2 us:1 dev:sdb1 Aug 2 13:15:01 hotbox kernel: disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00] I wrote the following hack so it would fix this. Anton --- linux/drivers/block/raid1.c Thu Jul 27 12:47:48 2000 +++ ../linux-2.4.0-test4-pre4/drivers/block/raid1.c Wed Aug 2 13:43:46 2000 @@ -1690,8 +1692,14 @@ disk->head_position = 0; } } + + if (sb->raid_disks > sb->nr_disks) + sb->nr_disks = sb->raid_disks; + conf->raid_disks = sb->raid_disks; conf->nr_disks = sb->nr_disks;