#ifndef AFS_NT40_ENV /* ignore options on NT */
if ((ti = as->parms[16].items)) { /* -syslog */
useSyslog = 1;
- ShowLog = 0;
}
if ((ti = as->parms[17].items)) { /* -syslogfacility */
useSyslogFacility = atoi(ti->data);
/* Forward declarations */
+static void QuietExit(int) AFS_NORETURN;
+static void SalvageShowLog(void);
static int IsVnodeOrphaned(struct SalvInfo *salvinfo, VnodeId vnode);
static int AskVolumeSummary(struct SalvInfo *salvinfo,
VolumeId singleVolumeNumber);
} else {
int fd;
- ShowLog = 0;
+ ShowLog = 0; /* Child processes do not display. */
for (fd = 0; fd < 16; fd++)
close(fd);
open(OS_DIRSEP, 0);
if (!canfork || debug || Fork() == 0) {
SalvageFileSys1(partP, singleVolumeNumber);
if (canfork && !debug) {
- ShowLog = 0;
- Exit(0);
+ QuietExit(0);
}
} else
Wait("SalvageFileSys");
goto error;
}
if (canfork && !debug) {
- ShowLog = 0;
- Exit(0);
+ QuietExit(0);
}
} else {
if (Wait("Inode summary") == -1) {
IH_RELEASE(salvinfo->VGLinkH);
if (canfork && !debug) {
- ShowLog = 0;
- Exit(0);
+ QuietExit(0);
}
}
return f;
}
-void
-Exit(int code)
+static void
+QuietExit(int code)
{
- if (ShowLog)
- showlog();
-
#ifdef AFS_DEMAND_ATTACH_FS
if (programType == salvageServer) {
/* release all volume locks before closing down our SYNC channels.
#endif
}
+void
+Exit(int code)
+{
+ SalvageShowLog();
+ QuietExit(code);
+}
+
+
int
Wait(char *prog)
{
#ifndef AFS_NT40_ENV
if (useSyslog) {
- ShowLog = 0;
return;
}
#endif
if (!logFile) { /* still nothing, use stdout */
logFile = stdout;
- ShowLog = 0;
}
#ifndef AFS_NAMEI_ENV
AFS_DEBUG_IOPS_LOG(logFile);
}
#endif
-void
-showlog(void)
+static void
+SalvageShowLog(void)
{
char line[256];
+ if (ShowLog == 0 || logFile == stdout || logFile == stderr) {
+ return;
+ }
+
#ifndef AFS_NT40_ENV
if (useSyslog) {
printf("Can't show log since using syslog.\n");
if (logFile) {
fprintf(logFile, "%s", tmp);
fflush(logFile);
- if (ShowLog)
- showlog();
+ SalvageShowLog();
}
if (debug)
abort();
- Exit(1);
+ QuietExit(1);
}
char *
struct InodeSummary *isp,
struct ViceInodeInfo *inodes, int RW,
int check, int *deleteMe);
-extern void showlog(void);
extern int UseTheForceLuke(char *path);