Updated to the latest RC release: nfs-utils-2-6-3-rc4 (bz 2144605)
Remove old nfsconvert dependencies (bz 2144179) Signed-off-by: Steve Dickson <steved@redhat.com>
This commit is contained in:
parent
55aa220a6f
commit
a3ba86df79
@ -1,5 +1,79 @@
|
|||||||
|
diff --git a/.gitignore b/.gitignore
|
||||||
|
index df791a83..682153d5 100644
|
||||||
|
--- a/.gitignore
|
||||||
|
+++ b/.gitignore
|
||||||
|
@@ -86,3 +86,5 @@ systemd/rpc-gssd.service
|
||||||
|
cscope.*
|
||||||
|
# generic editor backup et al
|
||||||
|
*~
|
||||||
|
+# file generated by ctags
|
||||||
|
+tags
|
||||||
|
diff --git a/README b/README
|
||||||
|
index 5e982409..3b0e771f 100644
|
||||||
|
--- a/README
|
||||||
|
+++ b/README
|
||||||
|
@@ -25,7 +25,7 @@ Unpack the sources and run these commands:
|
||||||
|
# ./configure
|
||||||
|
# make
|
||||||
|
|
||||||
|
-To install binaries and documenation, run this command:
|
||||||
|
+To install binaries and documentation, run this command:
|
||||||
|
|
||||||
|
# make install
|
||||||
|
|
||||||
|
@@ -40,7 +40,7 @@ Updating to the latest head after you've already got it.
|
||||||
|
|
||||||
|
git pull
|
||||||
|
|
||||||
|
-Building requires that autotools be installed. To invoke them
|
||||||
|
+Building requires that autotools be installed. To invoke them
|
||||||
|
simply
|
||||||
|
|
||||||
|
sh autogen.sh
|
||||||
|
@@ -70,7 +70,7 @@ scripts can be written to work correctly.
|
||||||
|
3.1. SERVER STARTUP
|
||||||
|
|
||||||
|
|
||||||
|
- A/ mount -t nfsd /proc/fs/nfsd
|
||||||
|
+ A/ mount -t nfsd nfsd /proc/fs/nfsd
|
||||||
|
This filesystem needs to be mount before most daemons,
|
||||||
|
particularly exportfs, mountd, svcgssd, idmapd.
|
||||||
|
It could be mounted once, or the script that starts each daemon
|
||||||
|
@@ -95,27 +95,27 @@ scripts can be written to work correctly.
|
||||||
|
|
||||||
|
D/ rpc.statd --no-notify
|
||||||
|
It is best if statd is started before nfsd though this isn't
|
||||||
|
- critical. Certainly it should be at most a few seconds after
|
||||||
|
+ critical. Certainly, it should be at most a few seconds after
|
||||||
|
nfsd.
|
||||||
|
When nfsd starts it will start lockd. If lockd then receives a
|
||||||
|
- lock request it will communicate with statd. If statd is not
|
||||||
|
+ lock request, it will communicate with statd. If statd is not
|
||||||
|
running lockd will retry, but it won't wait forever for a
|
||||||
|
reply.
|
||||||
|
Note that if statd is started before nfsd, the --no-notify
|
||||||
|
- option must be used. If notify requests are sent out before
|
||||||
|
+ option must be used. If notify requests are sent out before
|
||||||
|
nfsd start, clients may try to reclaim locks and, on finding
|
||||||
|
that lockd isn't running, they will give up and never reclaim
|
||||||
|
the lock.
|
||||||
|
rpc.statd is only needed for NFSv2 and NFSv3 support.
|
||||||
|
|
||||||
|
E/ rpc.nfsd
|
||||||
|
- Starting nfsd will automatically start lockd. The nfs server
|
||||||
|
+ Starting nfsd will automatically start lockd. The nfs server
|
||||||
|
will now be fully active and respond to any requests from
|
||||||
|
clients.
|
||||||
|
|
||||||
|
F/ sm-notify
|
||||||
|
This will notify any client which might have locks from before
|
||||||
|
- a reboot to try to reclaim their locks. This should start
|
||||||
|
+ a reboot to try to reclaim their locks. This should start
|
||||||
|
immediately after rpc.nfsd is started so that clients have a
|
||||||
|
chance to reclaim locks within the 90 second grace period.
|
||||||
|
sm-notify is only needed for NFSv2 and NFSv3 support.
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index f1c46c5..5d9cbf3 100644
|
index f1c46c5c..5d9cbf31 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -249,6 +249,16 @@ AC_ARG_ENABLE(nfsdcld,
|
@@ -249,6 +249,16 @@ AC_ARG_ENABLE(nfsdcld,
|
||||||
@ -20,7 +94,7 @@ index f1c46c5..5d9cbf3 100644
|
|||||||
[AS_HELP_STRING([--disable-nfsdcltrack],[disable NFSv4 clientid tracking programs @<:@default=no@:>@])],
|
[AS_HELP_STRING([--disable-nfsdcltrack],[disable NFSv4 clientid tracking programs @<:@default=no@:>@])],
|
||||||
enable_nfsdcltrack=$enableval,
|
enable_nfsdcltrack=$enableval,
|
||||||
diff --git a/support/export/auth.c b/support/export/auth.c
|
diff --git a/support/export/auth.c b/support/export/auth.c
|
||||||
index 03ce4b8..2d7960f 100644
|
index 03ce4b8a..2d7960f1 100644
|
||||||
--- a/support/export/auth.c
|
--- a/support/export/auth.c
|
||||||
+++ b/support/export/auth.c
|
+++ b/support/export/auth.c
|
||||||
@@ -82,7 +82,7 @@ check_useipaddr(void)
|
@@ -82,7 +82,7 @@ check_useipaddr(void)
|
||||||
@ -33,7 +107,7 @@ index 03ce4b8..2d7960f 100644
|
|||||||
struct stat stb;
|
struct stat stb;
|
||||||
static ino_t last_inode;
|
static ino_t last_inode;
|
||||||
diff --git a/support/export/v4clients.c b/support/export/v4clients.c
|
diff --git a/support/export/v4clients.c b/support/export/v4clients.c
|
||||||
index 5f15b61..3230251 100644
|
index 5f15b614..32302512 100644
|
||||||
--- a/support/export/v4clients.c
|
--- a/support/export/v4clients.c
|
||||||
+++ b/support/export/v4clients.c
|
+++ b/support/export/v4clients.c
|
||||||
@@ -26,7 +26,7 @@ void v4clients_init(void)
|
@@ -26,7 +26,7 @@ void v4clients_init(void)
|
||||||
@ -46,7 +120,7 @@ index 5f15b61..3230251 100644
|
|||||||
return;
|
return;
|
||||||
if (clients_fd >= 0)
|
if (clients_fd >= 0)
|
||||||
diff --git a/support/export/v4root.c b/support/export/v4root.c
|
diff --git a/support/export/v4root.c b/support/export/v4root.c
|
||||||
index c12a7d8..fbb0ad5 100644
|
index c12a7d85..fbb0ad5f 100644
|
||||||
--- a/support/export/v4root.c
|
--- a/support/export/v4root.c
|
||||||
+++ b/support/export/v4root.c
|
+++ b/support/export/v4root.c
|
||||||
@@ -198,7 +198,7 @@ static int v4root_add_parents(nfs_export *exp)
|
@@ -198,7 +198,7 @@ static int v4root_add_parents(nfs_export *exp)
|
||||||
@ -59,7 +133,7 @@ index c12a7d8..fbb0ad5 100644
|
|||||||
nfs_export *exp;
|
nfs_export *exp;
|
||||||
int i;
|
int i;
|
||||||
diff --git a/support/export/xtab.c b/support/export/xtab.c
|
diff --git a/support/export/xtab.c b/support/export/xtab.c
|
||||||
index c888a80..e210ca9 100644
|
index c888a80a..e210ca99 100644
|
||||||
--- a/support/export/xtab.c
|
--- a/support/export/xtab.c
|
||||||
+++ b/support/export/xtab.c
|
+++ b/support/export/xtab.c
|
||||||
@@ -135,7 +135,7 @@ xtab_write(char *xtab, char *xtabtmp, char *lockfn, int is_export)
|
@@ -135,7 +135,7 @@ xtab_write(char *xtab, char *xtabtmp, char *lockfn, int is_export)
|
||||||
@ -72,7 +146,7 @@ index c888a80..e210ca9 100644
|
|||||||
return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);
|
return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);
|
||||||
}
|
}
|
||||||
diff --git a/support/nfs/xlog.c b/support/nfs/xlog.c
|
diff --git a/support/nfs/xlog.c b/support/nfs/xlog.c
|
||||||
index e5861b9..fa125ce 100644
|
index e5861b9d..fa125cef 100644
|
||||||
--- a/support/nfs/xlog.c
|
--- a/support/nfs/xlog.c
|
||||||
+++ b/support/nfs/xlog.c
|
+++ b/support/nfs/xlog.c
|
||||||
@@ -46,11 +46,13 @@ int export_errno = 0;
|
@@ -46,11 +46,13 @@ int export_errno = 0;
|
||||||
@ -107,7 +181,7 @@ index e5861b9..fa125ce 100644
|
|||||||
|
|
||||||
void
|
void
|
||||||
diff --git a/support/nfsidmap/regex.c b/support/nfsidmap/regex.c
|
diff --git a/support/nfsidmap/regex.c b/support/nfsidmap/regex.c
|
||||||
index 958b4ac..8424179 100644
|
index 958b4ac8..8424179f 100644
|
||||||
--- a/support/nfsidmap/regex.c
|
--- a/support/nfsidmap/regex.c
|
||||||
+++ b/support/nfsidmap/regex.c
|
+++ b/support/nfsidmap/regex.c
|
||||||
@@ -542,7 +542,7 @@ struct trans_func regex_trans = {
|
@@ -542,7 +542,7 @@ struct trans_func regex_trans = {
|
||||||
@ -120,7 +194,7 @@ index 958b4ac..8424179 100644
|
|||||||
return (®ex_trans);
|
return (®ex_trans);
|
||||||
}
|
}
|
||||||
diff --git a/systemd/nfs.conf.man b/systemd/nfs.conf.man
|
diff --git a/systemd/nfs.conf.man b/systemd/nfs.conf.man
|
||||||
index e74083e..b95c05a 100644
|
index e74083e9..bfd3380f 100644
|
||||||
--- a/systemd/nfs.conf.man
|
--- a/systemd/nfs.conf.man
|
||||||
+++ b/systemd/nfs.conf.man
|
+++ b/systemd/nfs.conf.man
|
||||||
@@ -98,6 +98,12 @@ value, which can be one or more from the list
|
@@ -98,6 +98,12 @@ value, which can be one or more from the list
|
||||||
@ -136,8 +210,16 @@ index e74083e..b95c05a 100644
|
|||||||
.TP
|
.TP
|
||||||
.B general
|
.B general
|
||||||
Recognized values:
|
Recognized values:
|
||||||
|
@@ -166,6 +172,7 @@ for details.
|
||||||
|
Recognized values:
|
||||||
|
.BR threads ,
|
||||||
|
.BR host ,
|
||||||
|
+.BR scope ,
|
||||||
|
.BR port ,
|
||||||
|
.BR grace-time ,
|
||||||
|
.BR lease-time ,
|
||||||
diff --git a/tools/Makefile.am b/tools/Makefile.am
|
diff --git a/tools/Makefile.am b/tools/Makefile.am
|
||||||
index 40c17c3..48fd0cd 100644
|
index 40c17c37..48fd0cdf 100644
|
||||||
--- a/tools/Makefile.am
|
--- a/tools/Makefile.am
|
||||||
+++ b/tools/Makefile.am
|
+++ b/tools/Makefile.am
|
||||||
@@ -12,6 +12,10 @@ if CONFIG_NFSDCLD
|
@@ -12,6 +12,10 @@ if CONFIG_NFSDCLD
|
||||||
@ -153,7 +235,7 @@ index 40c17c3..48fd0cd 100644
|
|||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py
|
diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py
|
||||||
index 1df74ba..85294fb 100755
|
index 1df74ba8..85294fb9 100755
|
||||||
--- a/tools/nfs-iostat/nfs-iostat.py
|
--- a/tools/nfs-iostat/nfs-iostat.py
|
||||||
+++ b/tools/nfs-iostat/nfs-iostat.py
|
+++ b/tools/nfs-iostat/nfs-iostat.py
|
||||||
@@ -43,7 +43,7 @@ NfsEventCounters = [
|
@@ -43,7 +43,7 @@ NfsEventCounters = [
|
||||||
@ -198,7 +280,7 @@ index 1df74ba..85294fb 100755
|
|||||||
print('(%.1f pages per call)' % \
|
print('(%.1f pages per call)' % \
|
||||||
(float(pages_read - vfsreadpage) / vfsreadpages))
|
(float(pages_read - vfsreadpage) / vfsreadpages))
|
||||||
diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am
|
diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am
|
||||||
index 845ea0d..7e08233 100644
|
index 845ea0d5..7e08233a 100644
|
||||||
--- a/tools/nfsrahead/Makefile.am
|
--- a/tools/nfsrahead/Makefile.am
|
||||||
+++ b/tools/nfsrahead/Makefile.am
|
+++ b/tools/nfsrahead/Makefile.am
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,6 +1,6 @@
|
||||||
@ -210,7 +292,7 @@ index 845ea0d..7e08233 100644
|
|||||||
|
|
||||||
man5_MANS = nfsrahead.man
|
man5_MANS = nfsrahead.man
|
||||||
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
||||||
index 2736ac8..bd89059 100644
|
index 2736ac89..a565fdbd 100644
|
||||||
--- a/utils/blkmapd/device-discovery.c
|
--- a/utils/blkmapd/device-discovery.c
|
||||||
+++ b/utils/blkmapd/device-discovery.c
|
+++ b/utils/blkmapd/device-discovery.c
|
||||||
@@ -187,10 +187,7 @@ static void bl_add_disk(char *filepath)
|
@@ -187,10 +187,7 @@ static void bl_add_disk(char *filepath)
|
||||||
@ -258,8 +340,69 @@ index 2736ac8..bd89059 100644
|
|||||||
}
|
}
|
||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
|
@@ -507,28 +498,44 @@ int main(int argc, char **argv)
|
||||||
|
if (fg) {
|
||||||
|
openlog("blkmapd", LOG_PERROR, 0);
|
||||||
|
} else {
|
||||||
|
- if (daemon(0, 0) != 0) {
|
||||||
|
- fprintf(stderr, "Daemonize failed\n");
|
||||||
|
+ pid_t pid = fork();
|
||||||
|
+ if (pid < 0) {
|
||||||
|
+ BL_LOG_ERR("fork error\n");
|
||||||
|
exit(1);
|
||||||
|
+ } else if (pid != 0) {
|
||||||
|
+ pidfd = open(PID_FILE, O_WRONLY | O_CREAT, 0644);
|
||||||
|
+ if (pidfd < 0) {
|
||||||
|
+ BL_LOG_ERR("Create pid file %s failed\n", PID_FILE);
|
||||||
|
+ exit(1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (lockf(pidfd, F_TLOCK, 0) < 0) {
|
||||||
|
+ BL_LOG_ERR("Already running; Exiting!");
|
||||||
|
+ close(pidfd);
|
||||||
|
+ exit(1);
|
||||||
|
+ }
|
||||||
|
+ if (ftruncate(pidfd, 0) < 0)
|
||||||
|
+ BL_LOG_ERR("ftruncate on %s failed: m\n", PID_FILE);
|
||||||
|
+ sprintf(pidbuf, "%d\n", pid);
|
||||||
|
+ if (write(pidfd, pidbuf, strlen(pidbuf)) != (ssize_t)strlen(pidbuf))
|
||||||
|
+ BL_LOG_ERR("write on %s failed: m\n", PID_FILE);
|
||||||
|
+ exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- openlog("blkmapd", LOG_PID, 0);
|
||||||
|
- pidfd = open(PID_FILE, O_WRONLY | O_CREAT, 0644);
|
||||||
|
- if (pidfd < 0) {
|
||||||
|
- BL_LOG_ERR("Create pid file %s failed\n", PID_FILE);
|
||||||
|
- exit(1);
|
||||||
|
+ (void)setsid();
|
||||||
|
+ if (chdir("/")) {
|
||||||
|
+ BL_LOG_ERR("chdir error\n");
|
||||||
|
}
|
||||||
|
+ int fd = open("/dev/null", O_RDWR, 0);
|
||||||
|
+ if (fd >= 0) {
|
||||||
|
+ (void)dup2(fd, STDIN_FILENO);
|
||||||
|
+ (void)dup2(fd, STDOUT_FILENO);
|
||||||
|
+ (void)dup2(fd, STDERR_FILENO);
|
||||||
|
|
||||||
|
- if (lockf(pidfd, F_TLOCK, 0) < 0) {
|
||||||
|
- BL_LOG_ERR("Already running; Exiting!");
|
||||||
|
- close(pidfd);
|
||||||
|
- exit(1);
|
||||||
|
+ (void)close(fd);
|
||||||
|
}
|
||||||
|
- if (ftruncate(pidfd, 0) < 0)
|
||||||
|
- BL_LOG_WARNING("ftruncate on %s failed: m\n", PID_FILE);
|
||||||
|
- sprintf(pidbuf, "%d\n", getpid());
|
||||||
|
- if (write(pidfd, pidbuf, strlen(pidbuf)) != (ssize_t)strlen(pidbuf))
|
||||||
|
- BL_LOG_WARNING("write on %s failed: m\n", PID_FILE);
|
||||||
|
+
|
||||||
|
+ openlog("blkmapd", LOG_PID, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
signal(SIGINT, sig_die);
|
||||||
diff --git a/utils/blkmapd/device-discovery.h b/utils/blkmapd/device-discovery.h
|
diff --git a/utils/blkmapd/device-discovery.h b/utils/blkmapd/device-discovery.h
|
||||||
index a86eed9..462aa94 100644
|
index a86eed99..462aa943 100644
|
||||||
--- a/utils/blkmapd/device-discovery.h
|
--- a/utils/blkmapd/device-discovery.h
|
||||||
+++ b/utils/blkmapd/device-discovery.h
|
+++ b/utils/blkmapd/device-discovery.h
|
||||||
@@ -151,6 +151,8 @@ uint64_t process_deviceinfo(const char *dev_addr_buf,
|
@@ -151,6 +151,8 @@ uint64_t process_deviceinfo(const char *dev_addr_buf,
|
||||||
@ -272,7 +415,7 @@ index a86eed9..462aa94 100644
|
|||||||
extern enum bl_path_state_e bldev_read_ap_state(int fd);
|
extern enum bl_path_state_e bldev_read_ap_state(int fd);
|
||||||
extern int bl_discover_devices(void);
|
extern int bl_discover_devices(void);
|
||||||
diff --git a/utils/blkmapd/device-inq.c b/utils/blkmapd/device-inq.c
|
diff --git a/utils/blkmapd/device-inq.c b/utils/blkmapd/device-inq.c
|
||||||
index c7952c3..9e5749e 100644
|
index c7952c3e..9e5749ef 100644
|
||||||
--- a/utils/blkmapd/device-inq.c
|
--- a/utils/blkmapd/device-inq.c
|
||||||
+++ b/utils/blkmapd/device-inq.c
|
+++ b/utils/blkmapd/device-inq.c
|
||||||
@@ -53,7 +53,7 @@
|
@@ -53,7 +53,7 @@
|
||||||
@ -294,7 +437,7 @@ index c7952c3..9e5749e 100644
|
|||||||
if (str)
|
if (str)
|
||||||
free(str);
|
free(str);
|
||||||
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
|
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
|
||||||
index 6ba615d..0897b22 100644
|
index 6ba615d1..0897b229 100644
|
||||||
--- a/utils/exportfs/exportfs.c
|
--- a/utils/exportfs/exportfs.c
|
||||||
+++ b/utils/exportfs/exportfs.c
|
+++ b/utils/exportfs/exportfs.c
|
||||||
@@ -69,14 +69,14 @@ static int _lockfd = -1;
|
@@ -69,14 +69,14 @@ static int _lockfd = -1;
|
||||||
@ -315,7 +458,7 @@ index 6ba615d..0897b22 100644
|
|||||||
if (_lockfd != -1) {
|
if (_lockfd != -1) {
|
||||||
lockf(_lockfd, F_ULOCK, 0);
|
lockf(_lockfd, F_ULOCK, 0);
|
||||||
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
|
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
|
||||||
index e79c124..cd9a965 100644
|
index e79c124d..cd9a965f 100644
|
||||||
--- a/utils/idmapd/idmapd.c
|
--- a/utils/idmapd/idmapd.c
|
||||||
+++ b/utils/idmapd/idmapd.c
|
+++ b/utils/idmapd/idmapd.c
|
||||||
@@ -867,7 +867,7 @@ nfsdreopen_one(struct idmap_client *ic)
|
@@ -867,7 +867,7 @@ nfsdreopen_one(struct idmap_client *ic)
|
||||||
@ -328,7 +471,7 @@ index e79c124..cd9a965 100644
|
|||||||
nfsdreopen_one(&nfsd_ic[IC_NAMEID]);
|
nfsdreopen_one(&nfsd_ic[IC_NAMEID]);
|
||||||
nfsdreopen_one(&nfsd_ic[IC_IDNAME]);
|
nfsdreopen_one(&nfsd_ic[IC_IDNAME]);
|
||||||
diff --git a/utils/mount/network.c b/utils/mount/network.c
|
diff --git a/utils/mount/network.c b/utils/mount/network.c
|
||||||
index ed2f825..01ead49 100644
|
index ed2f8253..01ead49f 100644
|
||||||
--- a/utils/mount/network.c
|
--- a/utils/mount/network.c
|
||||||
+++ b/utils/mount/network.c
|
+++ b/utils/mount/network.c
|
||||||
@@ -179,7 +179,7 @@ static const unsigned long probe_mnt3_only[] = {
|
@@ -179,7 +179,7 @@ static const unsigned long probe_mnt3_only[] = {
|
||||||
@ -341,7 +484,7 @@ index ed2f825..01ead49 100644
|
|||||||
extern unsigned long config_default_proto;
|
extern unsigned long config_default_proto;
|
||||||
/*
|
/*
|
||||||
diff --git a/utils/mount/parse_dev.c b/utils/mount/parse_dev.c
|
diff --git a/utils/mount/parse_dev.c b/utils/mount/parse_dev.c
|
||||||
index 0d3bcb9..2ade5d5 100644
|
index 0d3bcb95..2ade5d5d 100644
|
||||||
--- a/utils/mount/parse_dev.c
|
--- a/utils/mount/parse_dev.c
|
||||||
+++ b/utils/mount/parse_dev.c
|
+++ b/utils/mount/parse_dev.c
|
||||||
@@ -170,7 +170,8 @@ static int nfs_parse_square_bracket(const char *dev,
|
@@ -170,7 +170,8 @@ static int nfs_parse_square_bracket(const char *dev,
|
||||||
@ -354,11 +497,104 @@ index 0d3bcb9..2ade5d5 100644
|
|||||||
return nfs_pdn_nomem_err();
|
return nfs_pdn_nomem_err();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
|
||||||
|
index 4016a761..249df00b 100644
|
||||||
|
--- a/utils/nfsd/nfsd.c
|
||||||
|
+++ b/utils/nfsd/nfsd.c
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
+#include <sched.h>
|
||||||
|
|
||||||
|
#include "conffile.h"
|
||||||
|
#include "nfslib.h"
|
||||||
|
@@ -39,6 +40,7 @@ static void usage(const char *);
|
||||||
|
static struct option longopts[] =
|
||||||
|
{
|
||||||
|
{ "host", 1, 0, 'H' },
|
||||||
|
+ { "scope", 1, 0, 'S'},
|
||||||
|
{ "help", 0, 0, 'h' },
|
||||||
|
{ "no-nfs-version", 1, 0, 'N' },
|
||||||
|
{ "nfs-version", 1, 0, 'V' },
|
||||||
|
@@ -69,6 +71,7 @@ main(int argc, char **argv)
|
||||||
|
int count = NFSD_NPROC, c, i, error = 0, portnum, fd, found_one;
|
||||||
|
char *p, *progname, *port, *rdma_port = NULL;
|
||||||
|
char **haddr = NULL;
|
||||||
|
+ char *scope = NULL;
|
||||||
|
int hcounter = 0;
|
||||||
|
struct conf_list *hosts;
|
||||||
|
int socket_up = 0;
|
||||||
|
@@ -168,8 +171,9 @@ main(int argc, char **argv)
|
||||||
|
hcounter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ scope = conf_get_str("nfsd", "scope");
|
||||||
|
|
||||||
|
- while ((c = getopt_long(argc, argv, "dH:hN:V:p:P:stTuUrG:L:", longopts, NULL)) != EOF) {
|
||||||
|
+ while ((c = getopt_long(argc, argv, "dH:S:hN:V:p:P:stTuUrG:L:", longopts, NULL)) != EOF) {
|
||||||
|
switch(c) {
|
||||||
|
case 'd':
|
||||||
|
xlog_config(D_ALL, 1);
|
||||||
|
@@ -190,6 +194,9 @@ main(int argc, char **argv)
|
||||||
|
haddr[hcounter] = optarg;
|
||||||
|
hcounter++;
|
||||||
|
break;
|
||||||
|
+ case 'S':
|
||||||
|
+ scope = optarg;
|
||||||
|
+ break;
|
||||||
|
case 'P': /* XXX for nfs-server compatibility */
|
||||||
|
case 'p':
|
||||||
|
/* only the last -p option has any effect */
|
||||||
|
@@ -367,6 +374,14 @@ main(int argc, char **argv)
|
||||||
|
if (lease > 0)
|
||||||
|
nfssvc_set_time("lease", lease);
|
||||||
|
|
||||||
|
+ if (scope) {
|
||||||
|
+ if (unshare(CLONE_NEWUTS) < 0 ||
|
||||||
|
+ sethostname(scope, strlen(scope)) < 0) {
|
||||||
|
+ xlog(L_ERROR, "Unable to set server scope: %m");
|
||||||
|
+ error = -1;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
i = 0;
|
||||||
|
do {
|
||||||
|
error = nfssvc_set_sockets(protobits, haddr[i], port);
|
||||||
diff --git a/utils/nfsd/nfsd.man b/utils/nfsd/nfsd.man
|
diff --git a/utils/nfsd/nfsd.man b/utils/nfsd/nfsd.man
|
||||||
index 634b8a6..bb99fe2 100644
|
index 634b8a63..dc05f362 100644
|
||||||
--- a/utils/nfsd/nfsd.man
|
--- a/utils/nfsd/nfsd.man
|
||||||
+++ b/utils/nfsd/nfsd.man
|
+++ b/utils/nfsd/nfsd.man
|
||||||
@@ -159,7 +159,9 @@ Enable or disable TCP support.
|
@@ -35,9 +35,17 @@ Note that
|
||||||
|
.B lockd
|
||||||
|
(which performs file locking services for NFS) may still accept
|
||||||
|
request on all known network addresses. This may change in future
|
||||||
|
-releases of the Linux Kernel. This option can be used multiple time
|
||||||
|
+releases of the Linux Kernel. This option can be used multiple times
|
||||||
|
to listen to more than one interface.
|
||||||
|
.TP
|
||||||
|
+.B \S " or " \-\-scope scope
|
||||||
|
+NFSv4.1 and later require the server to report a "scope" which is used
|
||||||
|
+by the clients to detect if two connections are to the same server.
|
||||||
|
+By default Linux NFSD uses the host name as the scope.
|
||||||
|
+.sp
|
||||||
|
+It is particularly important for high-availablity configurations to ensure
|
||||||
|
+that all potential server nodes report the same server scope.
|
||||||
|
+.TP
|
||||||
|
.B \-p " or " \-\-port port
|
||||||
|
specify a different port to listen on for NFS requests. By default,
|
||||||
|
.B rpc.nfsd
|
||||||
|
@@ -134,6 +142,9 @@ will listen on. Use of the
|
||||||
|
.B --host
|
||||||
|
option replaces all host names listed here.
|
||||||
|
.TP
|
||||||
|
+.B scope
|
||||||
|
+Set the server scope.
|
||||||
|
+.TP
|
||||||
|
.B grace-time
|
||||||
|
The grace time, for both NFSv4 and NLM, in seconds.
|
||||||
|
.TP
|
||||||
|
@@ -159,7 +170,9 @@ Enable or disable TCP support.
|
||||||
.B vers3
|
.B vers3
|
||||||
.TP
|
.TP
|
||||||
.B vers4
|
.B vers4
|
@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser
|
|||||||
Name: nfs-utils
|
Name: nfs-utils
|
||||||
URL: http://linux-nfs.org/
|
URL: http://linux-nfs.org/
|
||||||
Version: 2.6.2
|
Version: 2.6.2
|
||||||
Release: 1.rc3%{?dist}
|
Release: 2.rc4%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
|
|
||||||
# group all 32bit related archs
|
# group all 32bit related archs
|
||||||
@ -14,7 +14,7 @@ Source2: lockd.conf
|
|||||||
Source3: 24-nfs-server.conf
|
Source3: 24-nfs-server.conf
|
||||||
Source4: 10-nfsv4.conf
|
Source4: 10-nfsv4.conf
|
||||||
|
|
||||||
Patch001: nfs-utils.2.6.3-rc3.patch
|
Patch001: nfs-utils.2.6.3-rc4.patch
|
||||||
|
|
||||||
Patch100: nfs-utils-1.2.1-statdpath-man.patch
|
Patch100: nfs-utils-1.2.1-statdpath-man.patch
|
||||||
Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch
|
Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch
|
||||||
@ -293,8 +293,10 @@ fi
|
|||||||
|
|
||||||
/bin/systemctl --system daemon-reload >/dev/null 2>&1 || :
|
/bin/systemctl --system daemon-reload >/dev/null 2>&1 || :
|
||||||
|
|
||||||
%triggerin -- nfs-utils > 1:2.1.1-3
|
%triggerin -- nfs-utils > 1:2.6.2-1
|
||||||
/bin/systemctl try-restart gssproxy || :
|
/bin/systemctl try-restart gssproxy || :
|
||||||
|
rm -rf /etc/systemd/system/nfs-*.requires
|
||||||
|
rm -rf /etc/systemd/system/rpc-*.requires
|
||||||
|
|
||||||
%triggerun -- nfs-utils > 1:2.6.2-0
|
%triggerun -- nfs-utils > 1:2.6.2-0
|
||||||
/bin/systemctl disable nfs-convert > /dev/null 2>&1 || :
|
/bin/systemctl disable nfs-convert > /dev/null 2>&1 || :
|
||||||
@ -453,6 +455,10 @@ fi
|
|||||||
%{_mandir}/*/nfsiostat.8.gz
|
%{_mandir}/*/nfsiostat.8.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 28 2022 Steve Dickson <steved@redhat.com> 2.6.2-2.rc4
|
||||||
|
- Updated to the latest RC release: nfs-utils-2-6-3-rc4 (bz 2144605)
|
||||||
|
- Remove old nfsconvert dependencies (bz 2144179)
|
||||||
|
|
||||||
* Mon Nov 7 2022 Steve Dickson <steved@redhat.com> 2.6.2-1.rc3
|
* Mon Nov 7 2022 Steve Dickson <steved@redhat.com> 2.6.2-1.rc3
|
||||||
- Updated to the latest RC release: nfs-utils-2-6-3-rc3 (bz 2140201)
|
- Updated to the latest RC release: nfs-utils-2-6-3-rc3 (bz 2140201)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user