Date: Wed, 21 Oct 2015 07:21:58 +0200
From: "Ian D. Leroux" <[email protected]>
Message-ID: <[email protected]>
| My guess is that swap1_stop() first forcibly
| unmounts /dev, and then tries to remove block-type swap devices (and
| generally carry on with shutdown) once /dev/wd0 no longer exists. This
| can't be sane.
Not sane perhaps, but most likely not as bad as it sounds, the kernel shouldn't
be using pathname lookups to find anything it is trying to remove, it has
vnodes for the devices already, which is all that's needed to close them.
So, while the problem you're seeing is probably all bound up in that
mess somewhere, I doubt it is quite as simple as "/dev/wd0x doesn't exist,
help"...
That said, I really don't understand the desire to cleanly disengage
everything. As soon as userland is done (when init will no longer run again)
the kernel should just sync & mark clean all of the filesystems, force stopped
(or into a tight loop, whatever is appropriate for the hardware) all but one
of the cpus, then exit to the bios (or whatever) to reset/halt/reboot or
whatever is wanted.
kre