int udpBufSize = 0; /* UDP buffer size for receive */
int sendBufSize = 16384; /* send buffer size */
int saneacls = 0; /* Sane ACLs Flag */
+static int unsafe_attach = 0; /* avoid inUse check on vol attach? */
struct timeval tp;
#define PTHREAD_RWLOCK_INITIALIZER {0x2DA8B3B4, {0}}
#endif
+#ifndef AFS_NT40_ENV
struct fs_state fs_state =
{ FS_MODE_NORMAL,
0,
PTHREAD_COND_INITIALIZER,
PTHREAD_RWLOCK_INITIALIZER
};
+#else /* AFS_NT40_ENV */
+struct fs_state fs_state;
+
+static int fs_stateInit(void)
+{
+ fs_state.mode = FS_MODE_NORMAL;
+ fs_state.FiveMinuteLWP_tranquil = 0;
+ fs_state.HostCheckLWP_tranquil = 0;
+ fs_state.FsyncCheckLWP_tranquil = 0;
+ fs_state.salvsync_fatal_error = 0;
+
+ fs_state.options.fs_state_save = 1;
+ fs_state.options.fs_state_restore = 1;
+ fs_state.options.fs_state_verify_before_save = 1;
+ fs_state.options.fs_state_verify_after_restore = 1;
+
+ assert(pthread_cond_init(&fs_state.worker_done_cv, NULL) == 0);
+ assert(pthread_rwlock_init(&fs_state.state_lock, NULL) == 0);
+}
+#endif /* AFS_NT40_ENV */
#endif /* AFS_DEMAND_ATTACH_FS */
/*
fputs("[-vlruthresh <minutes before unused volumes become eligible for soft detach> (default is 2 hours)] ", stdout);
fputs("[-vlruinterval <seconds between VLRU scans> (default is 2 minutes)] ", stdout);
fputs("[-vlrumax <max volumes to soft detach in one VLRU scan> (default is 8)] ", stdout);
+ fputs("[-unsafe-nosalvage (bypass volume inUse safety check on attach, bypassing salvage)] ", stdout);
#elif AFS_PTHREAD_ENV
fputs("[-vattachpar <number of volume attach threads> (default is 1)] ", stdout);
#endif
return -1;
}
VLRU_SetOptions(VLRU_SET_MAX, atoi(argv[++i]));
+ } else if (!strcmp(argv[i], "-unsafe-nosalvage")) {
+ unsafe_attach = 1;
#endif /* AFS_DEMAND_ATTACH_FS */
} else if (!strcmp(argv[i], "-s")) {
Sawsmall = 1;
ViceLog(0, ("Both -spare and -pctspare specified, exiting.\n"));
exit(-1);
}
-#ifdef AFS_SGI_XFS_IOPS_ENV
- ViceLog(0, ("XFS/EFS File server starting\n"));
-#else
- ViceLog(0, ("File server starting\n"));
-#endif
+ LogCommandLine(argc, argv, "starting", "", "File server", FSLog);
#if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
/* initialize the pthread soft signal handler thread */
opts.nLargeVnodes = large;
opts.nSmallVnodes = nSmallVns;
opts.volcache = volcache;
+ opts.unsafe_attach = unsafe_attach;
if (VInitVolumePackage2(fileServer, &opts)) {
ViceLog(0,
FT_GetTimeOfDay(&tp, 0);
- ViceLog(0, ("File server has started at %s\r",
+ ViceLog(0, ("File server has started at %s",
afs_ctime((time_t *)&(tp.tv_sec), tbuffer, sizeof(tbuffer))));
/*