On Sun, Jan 26, 2003 at 04:08:31PM +0800, Greg Lehey wrote:
> On Sunday, 26 January 2003 at 14:24:02 +1030, Daniel O'Connor wrote:
> > On Sun, 2003-01-26 at 08:08, David Schultz wrote:
> >> Good.  I was referring to IDE in this case, because I assume
> >> that's what Greg's laptop uses.  The ATA driver flushes the cache
> >> when the device is closed, but I don't think that happens during
> >> shutdown.  It probably needs to register a shutdown hook like the
> >> SCSI driver.  Also, the driver is a bit optimistic about how long
> >> the flush will take; it times out after 5 seconds, whereas the ATA
> >> spec says a flush can take up to 30 seconds.
> >
> > I am wondering if I experienced this problem with my -stable laptop..
> >
> > I shut it down and then booted it up later to find fsck having a nice
> > good chew on the drive (deleting REAMS of files).
> 
> Did you use shutdown -p?  If my hypothesis is correct, it's possible
> to get this result with shutdown -h if you press the power switch as
> soon as the "System halted" message appears, but normally you'd give
> it a few seconds longer.  With shutdown -p, it's immediate, modulo
> delay.

Just a random idea: If that poses an issue, how about this patch?

Eugene
--- src/sys/kern_shutdown.c     Sun Jan 26 14:24:56 2003
+++ src/sys/kern_shutdown.c.new Sun Jan 26 14:25:42 2003
@@ -545,7 +545,7 @@
 static void 
 poweroff_wait(void *junk, int howto)
 {
-       if(!(howto & RB_POWEROFF) || poweroff_delay <= 0)
+       if(!(howto & (RB_POWEROFF | RB_HALT)) || poweroff_delay <= 0)
                return;
        DELAY(poweroff_delay * 1000);
 }

Reply via email to