Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F137289918
D33733.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D33733.id.diff
View Options
diff --git a/sbin/mount_nfs/mount_nfs.8 b/sbin/mount_nfs/mount_nfs.8
--- a/sbin/mount_nfs/mount_nfs.8
+++ b/sbin/mount_nfs/mount_nfs.8
@@ -28,7 +28,7 @@
.\" @(#)mount_nfs.8 8.3 (Berkeley) 3/29/95
.\" $FreeBSD$
.\"
-.Dd July 10, 2021
+.Dd January 11, 2022
.Dt MOUNT_NFS 8
.Os
.Sh NAME
@@ -129,6 +129,18 @@
Useful for
.Xr fstab 5 ,
where the file system mount is not critical to multiuser operation.
+.It Cm bgnow
+Like
+.Cm bg ,
+fork off a child to keep trying the mount in the background,
+but do not attempt to mount in the foreground first.
+This eliminates a
+60+ second timeout when the server is not responding.
+Useful for speeding up the boot process of a client when the server is
+likely to be unavailable.
+This is often the case for interdependent servers
+such as cross-mounted servers (each of two servers is an NFS client of
+the other) and for cluster nodes that must boot before the file servers.
.It Cm deadthresh Ns = Ns Aq Ar value
Set the
.Dq "dead server threshold"
diff --git a/sbin/mount_nfs/mount_nfs.c b/sbin/mount_nfs/mount_nfs.c
--- a/sbin/mount_nfs/mount_nfs.c
+++ b/sbin/mount_nfs/mount_nfs.c
@@ -103,10 +103,11 @@
long fhsize;
u_char nfh[NFS3_FHSIZE];
};
-#define BGRND 1
-#define ISBGRND 2
-#define OF_NOINET4 4
-#define OF_NOINET6 8
+#define BGRND 0x01
+#define ISBGRND 0x02
+#define OF_NOINET4 0x04
+#define OF_NOINET6 0x08
+#define BGRNDNOW 0x10
static int retrycnt = -1;
static int opflags = 0;
static int nfsproto = IPPROTO_TCP;
@@ -242,6 +243,9 @@
if (strcmp(opt, "bg") == 0) {
opflags |= BGRND;
pass_flag_to_nmount=0;
+ } else if (strcmp(opt, "bgnow") == 0) {
+ opflags |= BGRNDNOW;
+ pass_flag_to_nmount=0;
} else if (strcmp(opt, "fg") == 0) {
/* same as not specifying -o bg */
pass_flag_to_nmount=0;
@@ -421,6 +425,9 @@
argc -= optind;
argv += optind;
+ if ((opflags & (BGRND | BGRNDNOW)) == (BGRND | BGRNDNOW))
+ errx(1, "Options bg and bgnow are mutually exclusive");
+
if (argc != 2) {
usage();
/* NOTREACHED */
@@ -649,6 +656,14 @@
}
}
+ if ((opflags & (BGRNDNOW | ISBGRND)) == BGRNDNOW) {
+ warnx("Mount %s:%s, backgrounding",
+ hostp, spec);
+ opflags |= ISBGRND;
+ if (daemon(0, 0) != 0)
+ err(1, "daemon");
+ }
+
ret = TRYRET_LOCALERR;
for (;;) {
/*
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 23, 2:45 AM (10 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26001674
Default Alt Text
D33733.id.diff (2 KB)
Attached To
Mode
D33733: Add a "bgnow" NFS mount option that causes the mount to go background immediately
Attached
Detach File
Event Timeline
Log In to Comment