> > If the disk is mounted the reread partition table ioctl needs to fail, > > period (there's no way for the kernel to update all the internal disk info > > related to the partition table with a disk in use). > > Right. What happens if it's still mounted is you should get a warning > about how it failed.
You get -EBUSY, and perhaps a kernel log message (SCSI at least). This happening on the iBook I assume we're talking about IDE disks here, not something weird like USB disks routed via SCSI emulation of some sort? There's one thing that bothers me WRT ide_revalidate_disk: it clears drive->busy before waking the device queue (but maybe that's required in order to get things started at all). For all I can see, reading the partition table back in should have completed at that point, though (and everything the kernel needs in order to access the device should be valid). How a sync immediately after this should crash is beyond me. > > And then what? The kernel doesn't care about OF after early boot init, > > right? > > My (admitiedly wierd/wild idea) is that it's not that OF is still doing > something, but that OF opened something on the disk when it was still > alive, and we left the HW in a bad state. That should show up way earlier I think. Michael