On Thursday July 6, pernegger@xxxxxxxxx wrote: > Still more problems ... :( > > My md raid5 still does not always shut down cleanly. The last few > lines of the shutdown sequence are always as follows: > > [...] > Will now halt. > md: stopping all md devices. > md: md0 still in use. > Synchronizing SCSI cache for disk /dev/sdd: > Synchronizing SCSI cache for disk /dev/sdc: > Synchronizing SCSI cache for disk /dev/sdb: > Synchronizing SCSI cache for disk /dev/sda: > Shutdown: hde > System halted. > > Most of the time the md array comes up clean on the next boot, often > enough it does not. Having the array rebuild after every other reboot > is not my idea of fun, because the only reason to take it down is to > exchange a failing disk. > How are you shutting down the machine? If something sending SIGKILL to all processes? If it does, then md really should shut down cleanly every time.... That said, I do see some room for improvement in the md shutdown sequence - it shouldn't give up at that point just because the device seems to be in use.... I'll look into that. You could try the following patch. I think it should be safe. NeilBrown Signed-off-by: Neil Brown <neilb@xxxxxxx> ### Diffstat output ./drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff .prev/drivers/md/md.c ./drivers/md/md.c --- .prev/drivers/md/md.c 2006-07-07 08:11:43.000000000 +1000 +++ ./drivers/md/md.c 2006-07-07 08:12:15.000000000 +1000 @@ -3217,7 +3217,7 @@ static int do_md_stop(mddev_t * mddev, i struct gendisk *disk = mddev->gendisk; if (mddev->pers) { - if (atomic_read(&mddev->active)>2) { + if (mode != 1 && atomic_read(&mddev->active)>2) { printk("md: %s still in use.\n",mdname(mddev)); return -EBUSY; } - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html