.comment: The Wit and Wisdom of Linus Torvalds
Linus on those little tragedies that
sometimes arise

Dennis E. Powell
Wednesday, January 31, 2001 08:10:02 AM
Actually, I bet I know what's up.
Want to bet $5 USD that suspend/resume
saves the keyboard A20 state, but does NOT save the fast-A20 gate
information?
So anything that enables A20 with only
the fast A20 gate will find that A20 is disabled again on resume.
Which would make Linux _really_
unhappy, needless to say. Instant death in the form of a triple fault
(all of the Linux kernel code is in the 1-2MB area, which would be
invisible), resulting in an instant reboot.
-----
I'm a stupid git. I even remember
thinking about the syncing issues at some point, and then obviously
just forgetting about it completely.
The simple fix is along the lines of
adding code to fsync() that walks the inode page list and writes out
dirty pages.
The clever and clean fix is to split
the inode page list into two lists, one for dirty and one for clean
pages, and only walk the dirty list.
Ho ho ho. I so enjoy making a
fool out of myself.
-----
And hey, if you think the above is
confusing, try making your /dev/null a regular (writable) file by
mistake. Now THAT will be confusing as hell: things will actually
work surprisingly well, but some things really don't work the
way they are intended to. And chasing it down is an exercise in
futility. Yes, I've done that at least twice as root by mistake.
-----
De gustibus non disputandum.
-----
And yes, I forgot to update the
Makefile release number - sue me, I'm too lazy to upload a new patch
with that fixed ;).
-----
Now, I'm not saying your filesystem is
toast. I'm just saying that if you booted up in pre6, I'd suggest a
quick reboot into a better kernel might be a good idea (be a jock,
and do a sync and just push the reset button to force a proper fsck
when it comes up - just in case).
Next: Linus on the new kernel »