version 1.19, 2010/02/04 23:55:42 |
version 1.20, 2011/06/09 19:57:50 |
Line 42 __RCSID("$NetBSD$"); |
|
Line 42 __RCSID("$NetBSD$"); |
|
#include <stdarg.h> |
#include <stdarg.h> |
#include <errno.h> |
#include <errno.h> |
#include <fstab.h> |
#include <fstab.h> |
|
#include <fcntl.h> |
|
#include <unistd.h> |
#include <err.h> |
#include <err.h> |
|
|
#include <sys/types.h> |
#include <sys/types.h> |
Line 256 print_mtime(time_t t) |
|
Line 258 print_mtime(time_t t) |
|
(void)snprintf(b, sizeof(b), "%lld ", (long long)t); |
(void)snprintf(b, sizeof(b), "%lld ", (long long)t); |
return b; |
return b; |
} |
} |
|
|
|
|
|
void |
|
catch(int n) |
|
{ |
|
if (ckfinish) (*ckfinish)(0); |
|
_exit(FSCK_EXIT_SIGNALLED); |
|
} |
|
|
|
/* |
|
* When preening, allow a single quit to signal |
|
* a special exit after filesystem checks complete |
|
* so that reboot sequence may be interrupted. |
|
*/ |
|
void |
|
catchquit(int n) |
|
{ |
|
static const char msg[] = |
|
"returning to single-user after filesystem check\n"; |
|
int serrno = errno; |
|
|
|
(void)write(STDOUT_FILENO, msg, sizeof(msg) - 1); |
|
returntosingle = 1; |
|
(void)signal(SIGQUIT, SIG_DFL); |
|
errno = serrno; |
|
} |
|
|
|
/* |
|
* Ignore a single quit signal; wait and flush just in case. |
|
* Used by child processes in preen. |
|
*/ |
|
void |
|
voidquit(int n) |
|
{ |
|
int serrno = errno; |
|
|
|
sleep(1); |
|
(void)signal(SIGQUIT, SIG_IGN); |
|
(void)signal(SIGQUIT, SIG_DFL); |
|
errno = serrno; |
|
} |