From 02639cf6a7405950cd616d71742c6a4fd937fbbc Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Mon, 26 Jul 2021 13:46:11 -0400 Subject: [PATCH] Updated to the latest RC release: nfs-utils-2-5-5.rc1 (bz 1986121) Signed-off-by: Steve Dickson --- nfs-utils-2.5.5-rc1.patch | 218 ++++++++++++++++++++++++++++++++++++++ nfs-utils.spec | 7 +- 2 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 nfs-utils-2.5.5-rc1.patch diff --git a/nfs-utils-2.5.5-rc1.patch b/nfs-utils-2.5.5-rc1.patch new file mode 100644 index 0000000..14a1a6c --- /dev/null +++ b/nfs-utils-2.5.5-rc1.patch @@ -0,0 +1,218 @@ +diff --git a/configure.ac b/configure.ac +index 93520a80..bc2d0f02 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"]) + AC_SUBST([_sysconfdir]) + AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir]) + ++# make _statedir available for substituion in config files ++# 2 "evals" needed late to expand variable names. ++AC_SUBST([_statedir]) ++AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir]) ++ ++if test "$statedir" = "/var/lib/nfs"; then ++ rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount" ++else ++ rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount" ++fi ++AC_SUBST(rpc_pipefsmount) ++ ++# make _rpc_pipefsmount available for substituion in config files ++# 2 "evals" needed late to expand variable names. ++AC_SUBST([_rpc_pipefsmount]) ++AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount]) ++ + AC_CONFIG_FILES([ + Makefile + systemd/rpc-gssd.service ++ systemd/rpc_pipefs.target ++ systemd/var-lib-nfs-rpc_pipefs.mount + linux-nfs/Makefile + support/Makefile + support/export/Makefile +diff --git a/systemd/Makefile.am b/systemd/Makefile.am +index 650ad25c..8c7b676f 100644 +--- a/systemd/Makefile.am ++++ b/systemd/Makefile.am +@@ -12,7 +12,9 @@ unit_files = \ + rpc-statd-notify.service \ + rpc-statd.service \ + \ +- proc-fs-nfsd.mount \ ++ proc-fs-nfsd.mount ++ ++rpc_pipefs_mount_file = \ + var-lib-nfs-rpc_pipefs.mount + + if CONFIG_NFSV4 +@@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator + install-data-hook: $(unit_files) + mkdir -p $(DESTDIR)/$(unitdir) + cp $(unit_files) $(DESTDIR)/$(unitdir) ++ cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount) + endif +diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c +index 8e218aa7..c24db567 100644 +--- a/systemd/rpc-pipefs-generator.c ++++ b/systemd/rpc-pipefs-generator.c +@@ -21,7 +21,7 @@ + #include "conffile.h" + #include "systemd.h" + +-#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs" ++#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs" + + static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit, + const char *dirname) +diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in +new file mode 100644 +index 00000000..332f62b6 +--- /dev/null ++++ b/systemd/rpc_pipefs.target.in +@@ -0,0 +1,3 @@ ++[Unit] ++Requires=@_rpc_pipefsmount@ ++After=@_rpc_pipefsmount@ +diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount.in b/systemd/var-lib-nfs-rpc_pipefs.mount.in +new file mode 100644 +index 00000000..4c5d6ce4 +--- /dev/null ++++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in +@@ -0,0 +1,10 @@ ++[Unit] ++Description=RPC Pipe File System ++DefaultDependencies=no ++After=systemd-tmpfiles-setup.service ++Conflicts=umount.target ++ ++[Mount] ++What=sunrpc ++Where=@_statedir@/rpc_pipefs ++Type=rpc_pipefs +diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c +index 77ebe736..2736ac89 100644 +--- a/utils/blkmapd/device-discovery.c ++++ b/utils/blkmapd/device-discovery.c +@@ -63,7 +63,7 @@ + #define EVENT_SIZE (sizeof(struct inotify_event)) + #define EVENT_BUFSIZE (1024 * EVENT_SIZE) + +-#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs" ++#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs" + #define PID_FILE "/run/blkmapd.pid" + + #define CONF_SAVE(w, f) do { \ +diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h +index c52c5b48..519dc431 100644 +--- a/utils/gssd/gssd.h ++++ b/utils/gssd/gssd.h +@@ -39,7 +39,7 @@ + #include + + #ifndef GSSD_PIPEFS_DIR +-#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs" ++#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs" + #endif + #define DNOTIFY_SIGNAL (SIGRTMIN + 3) + +diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c +index 51c71fbb..e2c160e8 100644 +--- a/utils/idmapd/idmapd.c ++++ b/utils/idmapd/idmapd.c +@@ -73,7 +73,7 @@ + #include "nfslib.h" + + #ifndef PIPEFS_DIR +-#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/" ++#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/" + #endif + + #ifndef NFSD_DIR +diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man +index f98cb47d..f1b76936 100644 +--- a/utils/mount/nfs.man ++++ b/utils/mount/nfs.man +@@ -555,6 +555,13 @@ using the FS-Cache facility. See cachefilesd(8) + and /Documentation/filesystems/caching + for detail on how to configure the FS-Cache facility. + Default value is nofsc. ++.TP 1.5i ++.B sloppy ++The ++.B sloppy ++option is an alternative to specifying ++.BR mount.nfs " -s " option. ++ + .SS "Options for NFS versions 2 and 3 only" + Use these options, along with the options in the above subsection, + for NFS versions 2 and 3 only. +diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c +index 82b054a5..fa67a66f 100644 +--- a/utils/mount/stropts.c ++++ b/utils/mount/stropts.c +@@ -339,11 +339,19 @@ static int nfs_verify_lock_option(struct mount_options *options) + + static int nfs_insert_sloppy_option(struct mount_options *options) + { +- if (!sloppy || linux_version_code() < MAKE_VERSION(2, 6, 27)) ++ if (linux_version_code() < MAKE_VERSION(2, 6, 27)) + return 1; + +- if (po_insert(options, "sloppy") == PO_FAILED) +- return 0; ++ if (po_contains(options, "sloppy")) { ++ po_remove_all(options, "sloppy"); ++ sloppy++; ++ } ++ ++ if (sloppy) { ++ if (po_insert(options, "sloppy") == PO_FAILED) ++ return 0; ++ } ++ + return 1; + } + +diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c +index e926f1c0..0b37c094 100644 +--- a/utils/nfsdcltrack/nfsdcltrack.c ++++ b/utils/nfsdcltrack/nfsdcltrack.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -525,7 +526,7 @@ cltrack_gracedone(const char *timestr) + if (*tail) + return -EINVAL; + +- xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime); ++ xlog(D_GENERAL, "%s: grace done. gracetime=%"PRIu64, __func__, gracetime); + + ret = sqlite_remove_unreclaimed(gracetime); + +diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c +index f79aebb3..cea4a411 100644 +--- a/utils/nfsdcltrack/sqlite.c ++++ b/utils/nfsdcltrack/sqlite.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -544,7 +545,7 @@ sqlite_remove_unreclaimed(time_t grace_start) + int ret; + char *err = NULL; + +- ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld", ++ ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %"PRIu64, + grace_start); + if (ret < 0) { + return ret; diff --git a/nfs-utils.spec b/nfs-utils.spec index 5b279e3..387a42f 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser Name: nfs-utils URL: http://linux-nfs.org/ Version: 2.5.4 -Release: 1%{?dist} +Release: 1.rc1%{?dist} Epoch: 1 # group all 32bit related archs @@ -17,6 +17,8 @@ Source5: nfsconvert.sh Source6: nfs-convert.service Source7: 10-nfsv4.conf +Patch001: nfs-utils-2.5.5-rc1.patch + Patch100: nfs-utils-1.2.1-statdpath-man.patch Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch Patch102: nfs-utils-1.2.5-idmap-errmsg.patch @@ -451,6 +453,9 @@ fi %{_mandir}/*/nfsiostat.8.gz %changelog +* Mon Jul 26 2021 Steve Dickson 2.5.4-1.rc1 +- Updated to the latest RC release: nfs-utils-2-5-5.rc1 (bz 1986121) + * Thu Jul 22 2021 Fedora Release Engineering - 1:2.5.4-1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild