From b7f1700a57439544f142377a838c3b887518d091 Mon Sep 17 00:00:00 2001 From: dholland Date: Sun, 13 Jul 2014 02:44:21 +0000 Subject: [PATCH] Revert previous; it doesn't work because all the lfs tools promiscuously .PATH in each other's source files, and I haven't the time or patience to deal with it tonight. --- sbin/fsck_lfs/lfs.c | 13 ++++++++++--- sbin/fsck_lfs/lfs_user.h | 3 ++- sbin/fsck_lfs/main.c | 4 +++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/sbin/fsck_lfs/lfs.c b/sbin/fsck_lfs/lfs.c index ec27416e61b5..c335b055bd27 100644 --- a/sbin/fsck_lfs/lfs.c +++ b/sbin/fsck_lfs/lfs.c @@ -1,4 +1,4 @@ -/* $NetBSD: lfs.c,v 1.42 2014/07/12 19:44:00 dholland Exp $ */ +/* $NetBSD: lfs.c,v 1.43 2014/07/13 02:44:21 dholland Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. * All rights reserved. @@ -85,7 +85,6 @@ #include #include -#include "fsutil.h" #include "bufcache.h" #include "vnode.h" #include "lfs_user.h" @@ -108,6 +107,7 @@ static int lfs_fragextend(struct uvnode *, int, int, daddr_t, struct ubuf **); int fsdirty = 0; +void (*panic_func)(int, const char *, va_list) = my_vpanic; /* * LFS buffer and uvnode operations @@ -834,13 +834,20 @@ check_summary(struct lfs *fs, SEGSUM *sp, ulfs_daddr_t pseg_addr, int debug, } /* print message and exit */ +void +my_vpanic(int fatal, const char *fmt, va_list ap) +{ + (void) vprintf(fmt, ap); + exit(8); +} + void call_panic(const char *fmt, ...) { va_list ap; va_start(ap, fmt); - vmsg(1, fmt, ap); + panic_func(1, fmt, ap); va_end(ap); } diff --git a/sbin/fsck_lfs/lfs_user.h b/sbin/fsck_lfs/lfs_user.h index 1d2bb7da4952..0e68fb21cc18 100644 --- a/sbin/fsck_lfs/lfs_user.h +++ b/sbin/fsck_lfs/lfs_user.h @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_user.h,v 1.6 2014/07/12 19:48:24 dholland Exp $ */ +/* $NetBSD: lfs_user.h,v 1.7 2014/07/13 02:44:21 dholland Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. * All rights reserved. @@ -89,6 +89,7 @@ int check_summary(struct lfs *, struct segsum *, ulfs_daddr_t, int, struct uvnod ulfs_daddr_t try_verify(struct lfs *, struct uvnode *, ulfs_daddr_t, int); struct ulfs1_dinode *lfs_ifind(struct lfs *, ino_t, struct ubuf *); void call_panic(const char *, ...); +void my_vpanic(int, const char *, va_list); int extend_ifile(struct lfs *); struct uvnode *lfs_valloc(struct lfs *, ino_t); int lfs_balloc(struct uvnode *, off_t, int, struct ubuf **); diff --git a/sbin/fsck_lfs/main.c b/sbin/fsck_lfs/main.c index a1fb5583ef61..195547a8af9c 100644 --- a/sbin/fsck_lfs/main.c +++ b/sbin/fsck_lfs/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.47 2014/07/12 19:44:00 dholland Exp $ */ +/* $NetBSD: main.c,v 1.48 2014/07/13 02:44:21 dholland Exp $ */ /* * Copyright (c) 1980, 1986, 1993 @@ -57,6 +57,7 @@ static int argtoi(int, const char *, const char *, int); static int checkfilesys(const char *, char *, long, int); static void usage(void); static void efun(int, const char *, ...); +extern void (*panic_func)(int, const char *, va_list); static void efun(int eval, const char *fmt, ...) @@ -80,6 +81,7 @@ main(int argc, char **argv) skipclean = 1; exitonfail = 0; idaddr = 0x0; + panic_func = vmsg; esetfunc(efun); while ((ch = getopt(argc, argv, optstring)) != -1) { switch (ch) {