When the fsck_ffs program cannot fully repair a file system,
it will output the message PLEASE RERUN FSCK. However, it does not
exit with a non-zero status in this case (contradicting the man page
claim that it "exits with 0 on success, and >0 if an error occurs."
The fsck rc-script (when running "fsck -y") tests the status from fsck
(which passes along the exit status from fsck_ffs) and issues a
"stop_boot" if the status fails. However, this is not effective since
fsck_ffs can return zero even on (some) errors. Effectively, it is
left to a later step in the boot process when the file systems are
mounted to detect the still-unclean file system and stop the boot.
This change modifies fsck_ffs so that when it cannot fully repair the
file system and issues the PLEASE RERUN FSCK message it also exits
with a non-zero status.
While here, the fsck_ffs man page has also been updated to document
the failing exit status codes used by fsck_ffs. Previously, only exit
status 7 was documented. Some of these exit statuses are tested for in
the fsck rc-script, so they are clearly depended upon and deserve
documentation.