diff --git a/SOURCES/nfs-utils-1.3.0-mount-nfsvers.patch b/SOURCES/nfs-utils-1.3.0-mount-nfsvers.patch
deleted file mode 100644
index c100856..0000000
--- a/SOURCES/nfs-utils-1.3.0-mount-nfsvers.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up nfs-utils-1.3.0/utils/mount/configfile.c.orig nfs-utils-1.3.0/utils/mount/configfile.c
---- nfs-utils-1.3.0/utils/mount/configfile.c.orig	2017-10-05 11:44:08.775077208 -0400
-+++ nfs-utils-1.3.0/utils/mount/configfile.c	2017-10-05 11:49:50.811349443 -0400
-@@ -70,6 +70,7 @@ struct mnt_alias {
- 	{"background", "bg", MNT_NOARG},
- 	{"foreground", "fg", MNT_NOARG},
- 	{"sloppy", "sloppy", MNT_NOARG},
-+	{"nfsvers", "vers", MNT_UNSET},
- };
- int mnt_alias_sz = (sizeof(mnt_alias_tab)/sizeof(mnt_alias_tab[0]));
- 
-@@ -296,20 +297,21 @@ conf_parse_mntopts(char *section, char *
- 
- 	list = conf_get_tag_list(section, arg);
- 	TAILQ_FOREACH(node, &list->fields, link) {
-+		/* check first if this is an alias for another option */
-+		field = mountopts_alias(node->field, &argtype);
- 		/*
- 		 * Do not overwrite options if already exists 
- 		 */
--		snprintf(buf, BUFSIZ, "%s=", node->field);
-+		snprintf(buf, BUFSIZ, "%s=", field);
- 		if (opts && strcasestr(opts, buf) != NULL)
- 			continue;
- 
--		if (lookup_entry(node->field) != NULL)
-+		if (lookup_entry(field) != NULL)
- 			continue;
- 		buf[0] = '\0';
- 		value = conf_get_section(section, arg, node->field);
- 		if (value == NULL)
- 			continue;
--		field = mountopts_alias(node->field, &argtype);
- 		if (strcasecmp(value, "false") == 0) {
- 			if (argtype != MNT_NOARG)
- 				snprintf(buf, BUFSIZ, "no%s", field);
diff --git a/SOURCES/nfs-utils-1.3.0-mountstats-shebang.patch b/SOURCES/nfs-utils-1.3.0-mountstats-shebang.patch
deleted file mode 100644
index 4217191..0000000
--- a/SOURCES/nfs-utils-1.3.0-mountstats-shebang.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-commit a1f89c17f529b688ce3f686a48a49cb3789807c5
-Author: Steve Dickson <steved@redhat.com>
-Date:   Thu Jul 27 10:35:55 2017 -0400
-
-    mountstats:  Remove a shebang
-    
-    There might be an issue that the script is executed with unwanted
-    version of <lang>.
-    
-    Signed-off-by: Steve Dickson <steved@redhat.com>
-    (cherry picked from commit caa59a30b78dedea99a2317da95bb86810360645)
-
-diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py
-index 90b15a5..1dd1f1b 100644
---- a/tools/mountstats/mountstats.py
-+++ b/tools/mountstats/mountstats.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python
- # -*- python-mode -*-
- """Parse /proc/self/mountstats and display it in human readable form
- """
diff --git a/SOURCES/nfs-utils-1.3.0-nfs-iostat-no-dev.patch b/SOURCES/nfs-utils-1.3.0-nfs-iostat-no-dev.patch
deleted file mode 100644
index edfe58a..0000000
--- a/SOURCES/nfs-utils-1.3.0-nfs-iostat-no-dev.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up nfs-utils-1.3.0/tools/nfs-iostat/nfs-iostat.py.orig nfs-utils-1.3.0/tools/nfs-iostat/nfs-iostat.py
---- nfs-utils-1.3.0/tools/nfs-iostat/nfs-iostat.py.orig	2017-11-03 09:29:39.000000000 -0400
-+++ nfs-utils-1.3.0/tools/nfs-iostat/nfs-iostat.py	2017-11-03 09:34:25.000000000 -0400
-@@ -434,6 +434,8 @@ def parse_stats_file(filename):
-         words = line.split()
-         if len(words) == 0:
-             continue
-+	if line.startswith("no device mounted") :
-+            continue
-         if words[0] == 'device':
-             key = words[4]
-             new = [ line.strip() ]
diff --git a/SOURCES/nfs-utils-1.3.0-nfs-man-v2.patch b/SOURCES/nfs-utils-1.3.0-nfs-man-v2.patch
deleted file mode 100644
index 0496be5..0000000
--- a/SOURCES/nfs-utils-1.3.0-nfs-man-v2.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-diff -up nfs-utils-1.3.0/utils/exportfs/exports.man.orig nfs-utils-1.3.0/utils/exportfs/exports.man
---- nfs-utils-1.3.0/utils/exportfs/exports.man.orig	2017-11-03 07:45:47.000000000 -0400
-+++ nfs-utils-1.3.0/utils/exportfs/exports.man	2017-11-03 09:25:47.000000000 -0400
-@@ -410,7 +410,7 @@ of the filesystem must be handled elsewh
- 
- .TP
- .IR pnfs
--This option allows enables the use of pNFS extension if protocol level
-+This option enables the use of the pNFS extension if the protocol level
- is NFSv4.1 or higher, and the filesystem supports pNFS exports.  With
- pNFS clients can bypass the server and perform I/O directly to storage
- devices. The default can be explicitly requested with the
-diff -up nfs-utils-1.3.0/utils/mount/nfs.man.orig nfs-utils-1.3.0/utils/mount/nfs.man
---- nfs-utils-1.3.0/utils/mount/nfs.man.orig	2017-11-03 07:45:47.000000000 -0400
-+++ nfs-utils-1.3.0/utils/mount/nfs.man	2017-11-03 09:23:20.000000000 -0400
-@@ -11,11 +11,8 @@ NFS is an Internet Standard protocol
- created by Sun Microsystems in 1984. NFS was developed
- to allow file sharing between systems residing
- on a local area network.
--The Linux NFS client supports three versions
--of the NFS protocol:
--NFS version 2 [RFC1094],
--NFS version 3 [RFC1813],
--and NFS version 4 [RFC3530].
-+Depending on kernel configuration, the Linux NFS client may
-+support NFS versions 2, 3, 4.0, 4.1, or 4.2.
- .P
- The
- .BR mount (8)
-@@ -88,9 +85,8 @@ These options are valid to use with any
- The NFS protocol version number used to contact the server's NFS service.
- If the server does not support the requested version, the mount request 
- fails.
--If this option is not specified, the client negotiates a suitable version 
--with
--the server, trying version 4 first, version 3 second, and version 2 last.
-+If this option is not specified, the client tries version 4.1 first,
-+then negotiates down until it finds a version supported by the server.
- .TP 1.5i
- .BI vers= n
- This option is an alternative to the
-@@ -752,7 +748,7 @@ NOTE: When used together, the 'local_loc
- by 'nolock'/'lock' mount option.
- .SS "Options for NFS version 4 only"
- Use these options, along with the options in the first subsection above,
--for NFS version 4 and newer.
-+for NFS version 4.0 and newer.
- .TP 1.5i
- .BI proto= netid
- The
-@@ -825,7 +821,7 @@ the behavior of this option in more deta
- Specifies a single IPv4 address (in dotted-quad form),
- or a non-link-local IPv6 address,
- that the NFS client advertises to allow servers
--to perform NFS version 4 callback requests against
-+to perform NFS version 4.0 callback requests against
- files on this mount point. If  the  server is unable to
- establish callback connections to clients, performance
- may degrade, or accesses to files may temporarily hang.
-@@ -838,6 +834,11 @@ In the presence of multiple client netwo
- special routing policies,
- or atypical network topologies,
- the exact address to use for callbacks may be nontrivial to determine.
-+.IP
-+NFS protocol versions 4.1 and 4.2 use the client-established
-+TCP connection for callback requests, so do not require the server to
-+connect to the client.  This option is therefore only affect NFS version
-+4.0 mounts.
- .TP 1.5i
- .BR migration " / " nomigration
- Selects whether the client uses an identification string that is compatible
-@@ -1726,7 +1727,7 @@ file system table
- .TP 1.5i
- .I /etc/nfsmount.conf
- Configuration file for NFS mounts
--.SH BUGS
-+.SH NOTES
- Before 2.4.7, the Linux NFS client did not support NFS over TCP.
- .P
- Before 2.4.20, the Linux NFS client used a heuristic
-@@ -1745,9 +1746,9 @@ when the
- .BR rsize " and " wsize
- settings were smaller than the system's page size.
- .P
--The Linux NFS client does not yet support
--certain optional features of the NFS version 4 protocol,
--such as security negotiation, server referrals, and named attributes.
-+The Linux client's support for protocol versions depend on whether the
-+kernel was built with options CONFIG_NFS_V2, CONFIG_NFS_V3,
-+CONFIG_NFS_V4, CONFIG_NFS_V4_1, and CONFIG_NFS_V4_2.
- .SH "SEE ALSO"
- .BR fstab (5),
- .BR mount (8),
-@@ -1780,4 +1781,8 @@ RFC 1833 for the RPC bind specification.
- .br
- RFC 2203 for the RPCSEC GSS API protocol specification.
- .br
--RFC 3530 for the NFS version 4 specification.
-+RFC 7530 for the NFS version 4.0 specification.
-+.br
-+RFC 5661 for the NFS version 4.1 specification.
-+.br
-+RFC 7862 for the NFS version 4.2 specification.
diff --git a/SOURCES/nfs-utils-1.3.0-nfsdcltrack-invalops.patch b/SOURCES/nfs-utils-1.3.0-nfsdcltrack-invalops.patch
deleted file mode 100644
index f3d07a2..0000000
--- a/SOURCES/nfs-utils-1.3.0-nfsdcltrack-invalops.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up nfs-utils-1.3.0/utils/nfsdcltrack/nfsdcltrack.c.orig nfs-utils-1.3.0/utils/nfsdcltrack/nfsdcltrack.c
---- nfs-utils-1.3.0/utils/nfsdcltrack/nfsdcltrack.c.orig	2017-10-12 12:46:02.785182594 -0400
-+++ nfs-utils-1.3.0/utils/nfsdcltrack/nfsdcltrack.c	2017-10-12 13:30:35.756186324 -0400
-@@ -591,7 +591,7 @@ main(int argc, char **argv)
- 			break;
- 		default:
- 			usage(progname);
--			return 0;
-+			return 1;
- 		}
- 	}
- 
diff --git a/SOURCES/nfs-utils-1.3.0-nfsdcltrack-warning01.patch b/SOURCES/nfs-utils-1.3.0-nfsdcltrack-warning01.patch
deleted file mode 100644
index 6a2ed40..0000000
--- a/SOURCES/nfs-utils-1.3.0-nfsdcltrack-warning01.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit d6ee36b8dcc663dc2b797d51e553f390ea2f7e31
-Author: Steve Dickson <steved@redhat.com>
-Date:   Wed Jul 19 16:42:39 2017 -0400
-
-    nfsdcltrack.c: remove a warning
-    
-    nfsdcltrack.c:581:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
-    
-    Acked-by: Jeff Layton <jlayton@redhat.com>
-    Signed-off-by: Steve Dickson <steved@redhat.com>
-    (cherry picked from commit f80c9984339da6f689f330b8a83d5ee503126827)
-
-diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c
-index 7af9efb..2f58f96 100644
---- a/utils/nfsdcltrack/nfsdcltrack.c
-+++ b/utils/nfsdcltrack/nfsdcltrack.c
-@@ -581,6 +581,7 @@ main(int argc, char **argv)
- 		switch (arg) {
- 		case 'd':
- 			xlog_config(D_ALL, 1);
-+			break;
- 		case 'f':
- 			xlog_syslog(0);
- 			xlog_stderr(1);
diff --git a/SOURCES/nfs-utils-1.3.0-server-chgrpcpipefs.patch b/SOURCES/nfs-utils-1.3.0-server-chgrpcpipefs.patch
deleted file mode 100644
index 473fab8..0000000
--- a/SOURCES/nfs-utils-1.3.0-server-chgrpcpipefs.patch
+++ /dev/null
@@ -1,935 +0,0 @@
-diff --git a/.gitignore b/.gitignore
-index 3d9640d..d26f4be 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -70,6 +70,8 @@ tests/nsm_client/nlm_sm_inter_svc.c
- tests/nsm_client/nlm_sm_inter_xdr.c
- utils/nfsidmap/nfsidmap
- systemd/nfs-server-generator
-+systemd/rpc-pipefs-generator
-+systemd/rpc-gssd.service
- # cscope database files
- cscope.*
- # generic editor backup et al
-diff --git a/configure.ac b/configure.ac
-index 3bce774..fce0e15 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -498,8 +498,14 @@ AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
- # Make sure that $ACLOCAL_FLAGS are used during a rebuild
- AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
- 
-+# make _sysconfdir available for substituion in config files
-+# 2 "evals" needed late to expand variable names.
-+AC_SUBST([_sysconfdir])
-+AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
-+
- AC_CONFIG_FILES([
- 	Makefile
-+	systemd/rpc-gssd.service
- 	linux-nfs/Makefile
- 	support/Makefile
- 	support/export/Makefile
-diff --git a/nfs.conf b/nfs.conf
-index c907de6..89cf386 100644
---- a/nfs.conf
-+++ b/nfs.conf
-@@ -1,7 +1,10 @@
- #
--# This is a general conifguration for the 
-+# This is a general configuration for the
- # NFS daemons and tools
- #
-+#[general]
-+# pipefs-directory=/var/lib/nfs/rpc_pipefs
-+#
- #[exportfs]
- # debug=0
- #
-@@ -12,7 +15,6 @@
- # limit-to-legacy-enctypes=0
- # context-timeout=0
- # rpc-timeout=5
--# pipefs-directory=/var/lib/nfs/rpc_pipefs
- # keytab-file=/etc/krb5.keytab
- # cred-cache-directory=
- # preferred-realm=
-diff --git a/support/include/xcommon.h b/support/include/xcommon.h
-index d1a4b18..23c9a13 100644
---- a/support/include/xcommon.h
-+++ b/support/include/xcommon.h
-@@ -17,6 +17,12 @@
- #include <stdlib.h>
- #include <string.h>
- 
-+#ifdef MAJOR_IN_MKDEV
-+#include <sys/mkdev.h>
-+#elif defined(MAJOR_IN_SYSMACROS)
-+#include <sys/sysmacros.h>
-+#endif
-+
- #define streq(s, t)	(strcmp ((s), (t)) == 0)
- 
- /* Functions in sundries.c that are used in mount.c and umount.c  */ 
-diff --git a/support/nfs/nfsexport.c b/support/nfs/nfsexport.c
-index f129fd2..c1c736e 100644
---- a/support/nfs/nfsexport.c
-+++ b/support/nfs/nfsexport.c
-@@ -18,6 +18,7 @@
- #include <fcntl.h>
- 
- #include "nfslib.h"
-+#include "xcommon.h"
- 
- 	/* if /proc/net/rpc/... exists, then 
- 	 * write to it, as that interface is more stable.
-diff --git a/systemd/Makefile.am b/systemd/Makefile.am
-index b789916..54a3b64 100644
---- a/systemd/Makefile.am
-+++ b/systemd/Makefile.am
-@@ -8,6 +8,7 @@ unit_files =  \
-     nfs-blkmap.service \
-     nfs-config.service \
-     nfs-idmapd.service \
-+    rpc_pipefs.target \
-     nfs-mountd.service \
-     nfs-server.service \
-     nfs-utils.service \
-@@ -24,14 +25,23 @@ EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS)
- unit_dir = /usr/lib/systemd/system
- generator_dir = /usr/lib/systemd/system-generators
- 
--EXTRA_PROGRAMS	= nfs-server-generator
-+EXTRA_PROGRAMS	= nfs-server-generator rpc-pipefs-generator
- genexecdir = $(generator_dir)
-+
-+COMMON_SRCS = systemd.c systemd.h
-+
-+nfs_server_generator_SOURCES = $(COMMON_SRCS) nfs-server-generator.c
-+
-+rpc_pipefs_generator_SOURCES = $(COMMON_SRCS) rpc-pipefs-generator.c
-+
- nfs_server_generator_LDADD = ../support/export/libexport.a \
- 			     ../support/nfs/libnfs.a \
- 			     ../support/misc/libmisc.a
- 
-+rpc_pipefs_generator_LDADD = ../support/nfs/libnfs.a
-+
- if INSTALL_SYSTEMD
--genexec_PROGRAMS = nfs-server-generator
-+genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
- install-data-hook: $(unit_files)
- 	mkdir -p $(DESTDIR)/$(unitdir)
- 	cp $(unit_files) $(DESTDIR)/$(unitdir)
-diff --git a/systemd/nfs-blkmap.service b/systemd/nfs-blkmap.service
-index ddbf4e9..c844e2d 100644
---- a/systemd/nfs-blkmap.service
-+++ b/systemd/nfs-blkmap.service
-@@ -2,8 +2,8 @@
- Description=pNFS block layout mapping daemon
- DefaultDependencies=no
- Conflicts=umount.target
--After=var-lib-nfs-rpc_pipefs.mount
--Requires=var-lib-nfs-rpc_pipefs.mount
-+After=rpc_pipefs.target
-+Requires=rpc_pipefs.target
- 
- PartOf=nfs-utils.service
- 
-diff --git a/systemd/nfs-idmapd.service b/systemd/nfs-idmapd.service
-index df3dd9d..38685b6 100644
---- a/systemd/nfs-idmapd.service
-+++ b/systemd/nfs-idmapd.service
-@@ -1,8 +1,8 @@
- [Unit]
- Description=NFSv4 ID-name mapping service
- DefaultDependencies=no
--Requires=var-lib-nfs-rpc_pipefs.mount
--After=var-lib-nfs-rpc_pipefs.mount local-fs.target
-+Requires=rpc_pipefs.target
-+After=rpc_pipefs.target local-fs.target
- 
- BindsTo=nfs-server.service
- 
-diff --git a/systemd/nfs-server-generator.c b/systemd/nfs-server-generator.c
-index 4aa6509..737f109 100644
---- a/systemd/nfs-server-generator.c
-+++ b/systemd/nfs-server-generator.c
-@@ -29,6 +29,7 @@
- #include "misc.h"
- #include "nfslib.h"
- #include "exportfs.h"
-+#include "systemd.h"
- 
- /* A simple "set of strings" to remove duplicates
-  * found in /etc/exports
-@@ -55,35 +56,6 @@ static int is_unique(struct list **lp, char *path)
- 	return 1;
- }
- 
--/* We need to convert a path name to a systemd unit
-- * name.  This requires some translation ('/' -> '-')
-- * and some escaping.
-- */
--static void systemd_escape(FILE *f, char *path)
--{
--	while (*path == '/')
--		path++;
--	if (!*path) {
--		/* "/" becomes "-", otherwise leading "/" is ignored */
--		fputs("-", f);
--		return;
--	}
--	while (*path) {
--		char c = *path++;
--
--		if (c == '/') {
--			/* multiple non-trailing slashes become '-' */
--			while (*path == '/')
--				path++;
--			if (*path)
--				fputs("-", f);
--		} else if (isalnum(c) || c == ':' || c == '.')
--			fputc(c, f);
--		else
--			fprintf(f, "\\x%02x", c & 0xff);
--	}
--}
--
- static int has_noauto_flag(char *path)
- {
- 	FILE		*fstab;
-@@ -108,7 +80,7 @@ static int has_noauto_flag(char *path)
- 
- int main(int argc, char *argv[])
- {
--	char		*path;
-+	char		*path, *spath;
- 	char		dirbase[] = "/nfs-server.service.d";
- 	char		filebase[] = "/order-with-mounts.conf";
- 	nfs_export	*exp;
-@@ -167,9 +139,15 @@ int main(int argc, char *argv[])
- 		if (strcmp(mnt->mnt_type, "nfs") != 0 &&
- 		    strcmp(mnt->mnt_type, "nfs4") != 0)
- 			continue;
--		fprintf(f, "Before= ");
--		systemd_escape(f, mnt->mnt_dir);
--		fprintf(f, ".mount\n");
-+
-+		spath = systemd_escape(mnt->mnt_dir, ".mount");
-+		if (!spath) {
-+			fprintf(stderr, 
-+				"nfs-server-generator: convert path failed: %s\n",
-+				mnt->mnt_dir);
-+			continue;
-+		}
-+		fprintf(f, "Before=%s\n", spath);
- 	}
- 
- 	fclose(fstab);
-diff --git a/systemd/nfs.conf.man b/systemd/nfs.conf.man
-index 938b970..9700586 100644
---- a/systemd/nfs.conf.man
-+++ b/systemd/nfs.conf.man
-@@ -96,6 +96,18 @@ value, which can be one or more from the list
- .BR all .
- When a list is given, the members should be comma-separated.
- .TP
-+.B general
-+Recognized values:
-+.BR pipefs-directory .
-+
-+See
-+.BR blkmapd (8),
-+.BR rpc.idmapd (8),
-+and
-+.BR rpc.gssd (8)
-+for details.
-+
-+.TP
- .B nfsdcltrack
- Recognized values:
- .BR storagedir .
-@@ -198,7 +210,6 @@ Recognized values:
- .BR limit-to-legacy-enctypes ,
- .BR context-timeout ,
- .BR rpc-timeout ,
--.BR pipefs-directory ,
- .BR keytab-file ,
- .BR cred-cache-directory ,
- .BR preferred-realm .
-diff --git a/systemd/rpc-gssd.service b/systemd/rpc-gssd.service
-deleted file mode 100644
-index 5d6d09f..0000000
---- a/systemd/rpc-gssd.service
-+++ /dev/null
-@@ -1,19 +0,0 @@
--[Unit]
--Description=RPC security service for NFS client and server
--DefaultDependencies=no
--Conflicts=umount.target
--Requires=var-lib-nfs-rpc_pipefs.mount
--After=var-lib-nfs-rpc_pipefs.mount gssproxy.service
--
--ConditionPathExists=/etc/krb5.keytab
--
--PartOf=nfs-utils.service
--
--Wants=nfs-config.service
--After=nfs-config.service
--
--[Service]
--EnvironmentFile=-/run/sysconfig/nfs-utils
--
--Type=forking
--ExecStart=/usr/sbin/rpc.gssd $GSSDARGS
-diff --git a/systemd/rpc-gssd.service.in b/systemd/rpc-gssd.service.in
-new file mode 100644
-index 0000000..c75ccbd
---- /dev/null
-+++ b/systemd/rpc-gssd.service.in
-@@ -0,0 +1,19 @@
-+[Unit]
-+Description=RPC security service for NFS client and server
-+DefaultDependencies=no
-+Conflicts=umount.target
-+Requires=rpc_pipefs.target
-+After=rpc_pipefs.target gssproxy.service
-+
-+ConditionPathExists=@_sysconfdir@/krb5.keytab
-+
-+PartOf=nfs-utils.service
-+
-+Wants=nfs-config.service
-+After=nfs-config.service
-+
-+[Service]
-+EnvironmentFile=-/run/sysconfig/nfs-utils
-+
-+Type=forking
-+ExecStart=/usr/sbin/rpc.gssd $GSSDARGS
-diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
-new file mode 100644
-index 0000000..66addb9
---- /dev/null
-+++ b/systemd/rpc-pipefs-generator.c
-@@ -0,0 +1,138 @@
-+/*
-+ * rpc-pipefs-generator:
-+ *   systemd generator to create ordering dependencies between
-+ *   nfs services and the rpc_pipefs mountpoint
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <sys/stat.h>
-+#include <sys/types.h>
-+#include <unistd.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <ctype.h>
-+#include <stdio.h>
-+#include <mntent.h>
-+
-+#include "nfslib.h"
-+#include "conffile.h"
-+#include "systemd.h"
-+
-+#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
-+char *conf_path = NFS_CONFFILE;
-+
-+static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
-+			       const char *dirname)
-+{
-+	char	*path;
-+	FILE	*f;
-+
-+	path = malloc(strlen(dirname) + 1 + strlen(pipefs_unit));
-+	if (!path)
-+		return 1;
-+	sprintf(path, "%s/%s", dirname, pipefs_unit);
-+	f = fopen(path, "w");
-+	if (!f)
-+		return 1;
-+
-+	fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
-+	fprintf(f, "Description=RPC Pipe File System\n");
-+	fprintf(f, "DefaultDependencies=no\n");
-+	fprintf(f, "After=systemd-tmpfiles-setup.service\n");
-+	fprintf(f, "Conflicts=umount.target\n");
-+	fprintf(f, "\n[Mount]\n");
-+	fprintf(f, "What=sunrpc\n");
-+	fprintf(f, "Where=%s\n", pipefs_path);
-+	fprintf(f, "Type=rpc_pipefs\n");
-+
-+	fclose(f);
-+	return 0;
-+}
-+
-+static
-+int generate_target(char *pipefs_path, const char *dirname)
-+{
-+	char	*path;
-+	char	filebase[] = "/rpc_pipefs.target";
-+	char	*pipefs_unit;
-+	FILE	*f;
-+	int 	ret = 0;
-+
-+	pipefs_unit = systemd_escape(pipefs_path, ".mount");
-+	if (!pipefs_unit)
-+		return 1;
-+
-+	ret = generate_mount_unit(pipefs_path, pipefs_unit, dirname);
-+	if (ret)
-+		return ret;
-+
-+	path = malloc(strlen(dirname) + 1 + sizeof(filebase));
-+	if (!path)
-+		return 2;
-+	sprintf(path, "%s", dirname);
-+	mkdir(path, 0755);
-+	strcat(path, filebase);
-+	f = fopen(path, "w");
-+	if (!f)
-+		return 1;
-+
-+	fprintf(f, "# Automatically generated by rpc-pipefs-generator\n\n[Unit]\n");
-+	fprintf(f, "Requires=%s\n", pipefs_unit);
-+	fprintf(f, "After=%s\n", pipefs_unit);
-+	fclose(f);
-+
-+	return 0;
-+}
-+
-+static int is_non_pipefs_mountpoint(char *path)
-+{
-+	FILE		*mtab;
-+	struct mntent	*mnt;
-+
-+	mtab = setmntent("/etc/mtab", "r");
-+	if (!mtab)
-+		return 0;
-+
-+	while ((mnt = getmntent(mtab)) != NULL) {
-+		if (strlen(mnt->mnt_dir) != strlen(path))
-+			continue;
-+		if (strncmp(mnt->mnt_dir, path, strlen(mnt->mnt_dir)))
-+			continue;
-+		if (strncmp(mnt->mnt_type, "rpc_pipefs", strlen(mnt->mnt_type)))
-+			break;
-+	}
-+	fclose(mtab);
-+	return mnt != NULL;
-+}
-+
-+int main(int argc, char *argv[])
-+{
-+	int 	ret;
-+	char	*s;
-+
-+	/* Avoid using any external services */
-+	xlog_syslog(0);
-+
-+	if (argc != 4 || argv[1][0] != '/') {
-+		fprintf(stderr, "rpc-pipefs-generator: create systemd dependencies for nfs services\n");
-+		fprintf(stderr, "Usage: normal-dir early-dir late-dir\n");
-+		exit(1);
-+	}
-+
-+	conf_init();
-+	s = conf_get_str("general", "pipefs-directory");
-+	if (!s)
-+		exit(0);
-+	if (strlen(s) == strlen(RPC_PIPEFS_DEFAULT) &&
-+			strcmp(s, RPC_PIPEFS_DEFAULT) == 0)
-+		exit(0);
-+
-+	if (is_non_pipefs_mountpoint(s))
-+		exit(1);
-+
-+	ret = generate_target(s, argv[1]);
-+	exit(ret);
-+}
-diff --git a/systemd/rpc-svcgssd.service b/systemd/rpc-svcgssd.service
-index 41177b6..a3a555c 100644
---- a/systemd/rpc-svcgssd.service
-+++ b/systemd/rpc-svcgssd.service
-@@ -1,8 +1,7 @@
- [Unit]
- Description=RPC security service for NFS server
- DefaultDependencies=no
--Requires=var-lib-nfs-rpc_pipefs.mount
--After=var-lib-nfs-rpc_pipefs.mount local-fs.target
-+After=local-fs.target
- PartOf=nfs-server.service
- PartOf=nfs-utils.service
- 
-diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
-new file mode 100644
-index 0000000..01d4d27
---- /dev/null
-+++ b/systemd/rpc_pipefs.target
-@@ -0,0 +1,3 @@
-+[Unit]
-+Requires=var-lib-nfs-rpc_pipefs.mount
-+After=var-lib-nfs-rpc_pipefs.mount
-diff --git a/systemd/systemd.c b/systemd/systemd.c
-new file mode 100644
-index 0000000..17820d4
---- /dev/null
-+++ b/systemd/systemd.c
-@@ -0,0 +1,133 @@
-+/*
-+ * Helper functions for systemd generators in nfs-utils.
-+ *
-+ * Currently just systemd_escape().
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <ctype.h>
-+#include <string.h>
-+
-+static const char hex[16] =
-+{
-+  '0', '1', '2', '3', '4', '5', '6', '7',
-+  '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
-+};
-+
-+/*
-+ * determine length of the string that systemd_escape() needs to allocate
-+ */
-+static int systemd_len(char *path)
-+{
-+	char *p;
-+	int len = 0;
-+
-+	p = path;
-+	while (*p == '/')
-+		/* multiple leading "/" are ignored */
-+		p++;
-+
-+	if (!*p)
-+		/* root directory "/" becomes is encoded as a single "-" */
-+		return 1;
-+
-+	if (*p == '.')
-+		/*
-+		 * replace "." with "\x2d" escape sequence if
-+		 * it's the first character in escaped path
-+		 * */
-+		len += 4;
-+
-+	while (*p) {
-+		unsigned char c = *p++;
-+
-+		if (c == '/') {
-+			/* multiple non-trailing slashes become '-' */
-+			while (*p == '/')
-+				p++;
-+			if (*p)
-+				len++;
-+		} else if (isalnum(c) || c == ':' || c == '.' || c == '_')
-+			/* these characters are not replaced */
-+			len++;
-+		else
-+			/* replace with "\x2d" escape sequence */
-+			len += 4;
-+	}
-+
-+	return len;
-+}
-+
-+/*
-+ * convert c to "\x2d" escape sequence and append to string
-+ * at position p, advancing p
-+ */
-+static char *hexify(unsigned char c, char *p)
-+{
-+	*p++ = '\\';
-+	*p++ = 'x';
-+	*p++ = hex[c >> 4];
-+	*p++ = hex[c & 0xf];
-+	return p;
-+}
-+
-+/*
-+ * convert a path to a unit name according to the logic in systemd.unit(5):
-+ *
-+ *     Basically, given a path, "/" is replaced by "-", and all other
-+ *     characters which are not ASCII alphanumerics are replaced by C-style
-+ *     "\x2d" escapes (except that "_" is never replaced and "." is only
-+ *     replaced when it would be the first character in the escaped path).
-+ *     The root directory "/" is encoded as single dash, while otherwise the
-+ *     initial and ending "/" are removed from all paths during
-+ *     transformation.
-+ *
-+ * NB: Although the systemd.unit(5) doesn't mention it, the ':' character
-+ * is not escaped.
-+ */
-+char *systemd_escape(char *path, char *suffix)
-+{
-+	char *result;
-+	char *p;
-+	int len;
-+
-+	len = systemd_len(path);
-+	result = malloc(len + strlen(suffix) + 1);
-+	p = result;
-+	while (*path == '/')
-+		/* multiple leading "/" are ignored */
-+		path++;
-+	if (!*path) {
-+		/* root directory "/" becomes is encoded as a single "-" */
-+		*p++ = '-';
-+		goto out;
-+	}
-+	if (*path == '.')
-+		/*
-+		 * replace "." with "\x2d" escape sequence if
-+		 * it's the first character in escaped path
-+		 * */
-+		p = hexify(*path++, p);
-+
-+	while (*path) {
-+		unsigned char c = *path++;
-+
-+		if (c == '/') {
-+			/* multiple non-trailing slashes become '-' */
-+			while (*path == '/')
-+				path++;
-+			if (*path)
-+				*p++ = '-';
-+		} else if (isalnum(c) || c == ':' || c == '.' || c == '_')
-+			/* these characters are not replaced */
-+			*p++ = c;
-+		else
-+			/* replace with "\x2d" escape sequence */
-+			p = hexify(c, p);
-+	}
-+
-+out:
-+	sprintf(p, "%s", suffix);
-+	return result;
-+}
-diff --git a/systemd/systemd.h b/systemd/systemd.h
-new file mode 100644
-index 0000000..25235ec
---- /dev/null
-+++ b/systemd/systemd.h
-@@ -0,0 +1,6 @@
-+#ifndef SYSTEMD_H
-+#define SYSTEMD_H
-+
-+char *systemd_escape(char *path, char *suffix);
-+
-+#endif /* SYSTEMD_H */
-diff --git a/utils/blkmapd/blkmapd.man b/utils/blkmapd/blkmapd.man
-index 914b80f..4b3d3f0 100644
---- a/utils/blkmapd/blkmapd.man
-+++ b/utils/blkmapd/blkmapd.man
-@@ -43,9 +43,24 @@ Performs device discovery only then exits.
- Runs
- .B blkmapd
- in the foreground and sends output to stderr (as opposed to syslogd)
-+.SH CONFIGURATION FILE
-+The
-+.B blkmapd
-+daemon recognizes the following value from the
-+.B [general]
-+section of the
-+.I /etc/nfs.conf
-+configuration file:
-+.TP
-+.B pipefs-directory
-+Tells
-+.B blkmapd
-+where to look for the rpc_pipefs filesystem.  The default value is
-+.IR /var/lib/nfs/rpc_pipefs .
- .SH SEE ALSO
- .BR nfs (5),
--.BR dmsetup (8)
-+.BR dmsetup (8),
-+.BR nfs.conf (5)
- .sp
- RFC 5661 for the NFS version 4.1 specification.
- .br
-diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
-index b010628..a419947 100644
---- a/utils/blkmapd/device-discovery.c
-+++ b/utils/blkmapd/device-discovery.c
-@@ -50,19 +50,36 @@
- #include <errno.h>
- #include <libdevmapper.h>
- 
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif /* HAVE_CONFIG_H */
-+
- #include "device-discovery.h"
-+#include "xcommon.h"
-+#include "nfslib.h"
-+#include "conffile.h"
- 
- #define EVENT_SIZE (sizeof(struct inotify_event))
- #define EVENT_BUFSIZE (1024 * EVENT_SIZE)
- 
--#define BL_PIPE_FILE	"/var/lib/nfs/rpc_pipefs/nfs/blocklayout"
--#define NFSPIPE_DIR	"/var/lib/nfs/rpc_pipefs/nfs"
- #define RPCPIPE_DIR	"/var/lib/nfs/rpc_pipefs"
- #define PID_FILE	"/var/run/blkmapd.pid"
- 
-+#define CONF_SAVE(w, f) do {			\
-+	char *p = f;				\
-+	if (p != NULL)				\
-+		(w) = p;			\
-+} while (0)
-+
-+static char bl_pipe_file[PATH_MAX];
-+static char nfspipe_dir[PATH_MAX];
-+static char rpcpipe_dir[PATH_MAX];
-+
- struct bl_disk *visible_disk_list;
- int    bl_watch_fd, bl_pipe_fd, nfs_pipedir_wfd, rpc_pipedir_wfd;
- int    pidfd = -1;
-+char   *conf_path = NULL;
-+
- 
- struct bl_disk_path *bl_get_path(const char *filepath,
- 				 struct bl_disk_path *paths)
-@@ -357,8 +374,8 @@ static void bl_rpcpipe_cb(void)
- 				continue;
- 			if (event->mask & IN_CREATE) {
- 				BL_LOG_WARNING("nfs pipe dir created\n");
--				bl_watch_dir(NFSPIPE_DIR, &nfs_pipedir_wfd);
--				bl_pipe_fd = open(BL_PIPE_FILE, O_RDWR);
-+				bl_watch_dir(nfspipe_dir, &nfs_pipedir_wfd);
-+				bl_pipe_fd = open(bl_pipe_file, O_RDWR);
- 			} else if (event->mask & IN_DELETE) {
- 				BL_LOG_WARNING("nfs pipe dir deleted\n");
- 				inotify_rm_watch(bl_watch_fd, nfs_pipedir_wfd);
-@@ -371,7 +388,7 @@ static void bl_rpcpipe_cb(void)
- 				continue;
- 			if (event->mask & IN_CREATE) {
- 				BL_LOG_WARNING("blocklayout pipe file created\n");
--				bl_pipe_fd = open(BL_PIPE_FILE, O_RDWR);
-+				bl_pipe_fd = open(bl_pipe_file, O_RDWR);
- 				if (bl_pipe_fd < 0)
- 					BL_LOG_ERR("open %s failed: %s\n",
- 						event->name, strerror(errno));
-@@ -437,6 +454,19 @@ int main(int argc, char **argv)
- 	int opt, dflag = 0, fg = 0, ret = 1;
- 	struct stat statbuf;
- 	char pidbuf[64];
-+	char *xrpcpipe_dir = NULL;
-+
-+	strncpy(rpcpipe_dir, RPCPIPE_DIR, sizeof(rpcpipe_dir));
-+	conf_path = NFS_CONFFILE;
-+	conf_init();
-+	CONF_SAVE(xrpcpipe_dir, conf_get_str("general", "pipefs-directory"));
-+	if (xrpcpipe_dir != NULL)
-+		strlcpy(rpcpipe_dir, xrpcpipe_dir, sizeof(rpcpipe_dir));
-+
-+	strncpy(nfspipe_dir, rpcpipe_dir, sizeof(nfspipe_dir));
-+	strlcat(nfspipe_dir, "/nfs", sizeof(nfspipe_dir));
-+	strncpy(bl_pipe_file, rpcpipe_dir, sizeof(bl_pipe_file));
-+	strlcat(bl_pipe_file, "/nfs/blocklayout", sizeof(bl_pipe_file));
- 
- 	while ((opt = getopt(argc, argv, "hdf")) != -1) {
- 		switch (opt) {
-@@ -501,12 +531,12 @@ int main(int argc, char **argv)
- 	}
- 
- 	/* open pipe file */
--	bl_watch_dir(RPCPIPE_DIR, &rpc_pipedir_wfd);
--	bl_watch_dir(NFSPIPE_DIR, &nfs_pipedir_wfd);
-+	bl_watch_dir(rpcpipe_dir, &rpc_pipedir_wfd);
-+	bl_watch_dir(nfspipe_dir, &nfs_pipedir_wfd);
- 
--	bl_pipe_fd = open(BL_PIPE_FILE, O_RDWR);
-+	bl_pipe_fd = open(bl_pipe_file, O_RDWR);
- 	if (bl_pipe_fd < 0)
--		BL_LOG_ERR("open pipe file %s failed: %s\n", BL_PIPE_FILE, strerror(errno));
-+		BL_LOG_ERR("open pipe file %s failed: %s\n", bl_pipe_file, strerror(errno));
- 
- 	while (1) {
- 		/* discover device when needed */
-diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c
-index c5c03fb..10d50d3 100644
---- a/utils/gssd/gssd.c
-+++ b/utils/gssd/gssd.c
-@@ -857,6 +857,10 @@ read_gss_conf(void)
- 	s = conf_get_str("gssd", "pipefs-directory");
- 	if (!s)
- 		s = conf_get_str("general", "pipefs-directory");
-+	else
-+		printerr(0, "WARNING: Specifying pipefs-directory in the [gssd] "
-+			 "section of %s is deprecated.  Use the [general] "
-+			 "section instead.", NFS_CONFFILE);
- 	if (s)
- 		pipefs_path = s;
- 	s = conf_get_str("gssd", "keytab-file");
-diff --git a/utils/gssd/gssd.man b/utils/gssd/gssd.man
-index 87eef02..e620f0d 100644
---- a/utils/gssd/gssd.man
-+++ b/utils/gssd/gssd.man
-@@ -335,10 +335,6 @@ Equivalent to
- Equivalent to
- .BR -t .
- .TP
--.B pipefs-directory
--Equivalent to
--.BR -p .
--.TP
- .B keytab-file
- Equivalent to
- .BR -k .
-@@ -350,6 +346,14 @@ Equivalent to
- .B preferred-realm
- Equivalent to
- .BR -R .
-+.P
-+In addtion, the following value is recognized from the
-+.B [general]
-+section:
-+.TP
-+.B pipefs-directory
-+Equivalent to
-+.BR -p .
- 
- .SH SEE ALSO
- .BR rpc.svcgssd (8),
-diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
-index f55d2e1..03efbea 100644
---- a/utils/idmapd/idmapd.c
-+++ b/utils/idmapd/idmapd.c
-@@ -166,7 +166,7 @@ static uid_t nobodyuid;
- static gid_t nobodygid;
- 
- /* Used by conffile.c in libnfs.a */
--char *conf_path;
-+char *conf_path = NULL;
- 
- static int
- flush_nfsd_cache(char *path, time_t now)
-@@ -220,7 +220,6 @@ main(int argc, char **argv)
- 	int ret;
- 	char *progname;
- 
--	conf_path = _PATH_IDMAPDCONF;
- 	nobodyuser = NFS4NOBODY_USER;
- 	nobodygroup = NFS4NOBODY_GROUP;
- 	strlcpy(pipefsdir, PIPEFS_DIR, sizeof(pipefsdir));
-@@ -234,8 +233,11 @@ main(int argc, char **argv)
- #define GETOPTSTR "hvfd:p:U:G:c:CS"
- 	opterr=0; /* Turn off error messages */
- 	while ((opt = getopt(argc, argv, GETOPTSTR)) != -1) {
--		if (opt == 'c')
-+		if (opt == 'c') {
-+			warnx("-c is deprecated and may be removed in the "
-+			      "future.  See idmapd(8).");
- 			conf_path = optarg;
-+		}
- 		if (opt == '?') {
- 			if (strchr(GETOPTSTR, optopt))
- 				warnx("'-%c' option requires an argument.", optopt);
-@@ -247,17 +249,33 @@ main(int argc, char **argv)
- 	}
- 	optind = 1;
- 
--	if (stat(conf_path, &sb) == -1 && (errno == ENOENT || errno == EACCES)) {
--		warn("Skipping configuration file \"%s\"", conf_path);
--		conf_path = NULL;
-+	if (conf_path) { /* deprecated -c option was specified */
-+		if (stat(conf_path, &sb) == -1 && (errno == ENOENT || errno == EACCES)) {
-+			warn("Skipping configuration file \"%s\"", conf_path);
-+			conf_path = NULL;
-+		} else {
-+			conf_init();
-+			verbose = conf_get_num("General", "Verbosity", 0);
-+			cache_entry_expiration = conf_get_num("General",
-+					"Cache-Expiration", DEFAULT_IDMAP_CACHE_EXPIRY);
-+			CONF_SAVE(xpipefsdir, conf_get_str("General", "Pipefs-Directory"));
-+			if (xpipefsdir != NULL)
-+				strlcpy(pipefsdir, xpipefsdir, sizeof(pipefsdir));
-+			CONF_SAVE(nobodyuser, conf_get_str("Mapping", "Nobody-User"));
-+			CONF_SAVE(nobodygroup, conf_get_str("Mapping", "Nobody-Group"));
-+		}
- 	} else {
-+		conf_path = NFS_CONFFILE;
- 		conf_init();
--		verbose = conf_get_num("General", "Verbosity", 0);
--		cache_entry_expiration = conf_get_num("General",
--				"Cache-Expiration", DEFAULT_IDMAP_CACHE_EXPIRY);
- 		CONF_SAVE(xpipefsdir, conf_get_str("General", "Pipefs-Directory"));
- 		if (xpipefsdir != NULL)
- 			strlcpy(pipefsdir, xpipefsdir, sizeof(pipefsdir));
-+
-+		conf_path = _PATH_IDMAPDCONF;
-+		conf_init();
-+		verbose = conf_get_num("General", "Verbosity", 0);
-+		cache_entry_expiration = conf_get_num("General",
-+				"cache-expiration", DEFAULT_IDMAP_CACHE_EXPIRY);
- 		CONF_SAVE(nobodyuser, conf_get_str("Mapping", "Nobody-User"));
- 		CONF_SAVE(nobodygroup, conf_get_str("Mapping", "Nobody-Group"));
- 	}
-diff --git a/utils/idmapd/idmapd.man b/utils/idmapd/idmapd.man
-index b9200c7..fb5fc1e 100644
---- a/utils/idmapd/idmapd.man
-+++ b/utils/idmapd/idmapd.man
-@@ -50,11 +50,28 @@ The default value is \&"/var/lib/nfs/rpc_pipefs\&".
- .It Fl c Ar path
- Use configuration file
- .Ar path .
-+This option is deprecated.
- .It Fl C
- Client-only: perform no idmapping for any NFS server, even if one is detected.
- .It Fl S
- Server-only: perform no idmapping for any NFS client, even if one is detected.
- .El
-+.Sh CONFIGURATION FILES
-+.Nm
-+recognizes the following value from the
-+.Sy [general]
-+section of the
-+.Pa /etc/nfs.conf
-+configuration file:
-+.Bl -tag -width Ds_imagedir
-+.It Sy pipefs-directory
-+Equivalent to
-+.Sy -p .
-+.El
-+.Pp
-+All other settings related to id mapping are found in the
-+.Pa /etc/idmapd.conf
-+configuration file.
- .Sh EXAMPLES
- .Cm rpc.idmapd -f -vvv
- .Pp
-@@ -71,9 +88,11 @@ messages to console, and with a verbosity level of 3.
- .\" This next request is for sections 1, 6, 7 & 8 only.
- .\" .Sh ENVIRONMENT
- .Sh FILES
--.Pa /etc/idmapd.conf
-+.Pa /etc/idmapd.conf ,
-+.Pa /etc/nfs.conf
- .Sh SEE ALSO
- .Xr idmapd.conf 5 ,
-+.Xr nfs.conf 5 ,
- .Xr nfsidmap 8
- .\".Sh SEE ALSO
- .\".Xr nylon.conf 4
-diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
-index 3bc13ca..f23fb5a 100644
---- a/utils/mountd/cache.c
-+++ b/utils/mountd/cache.c
-@@ -31,6 +31,7 @@
- #include "mountd.h"
- #include "fsloc.h"
- #include "pseudoflavors.h"
-+#include "xcommon.h"
- 
- #ifdef USE_BLKID
- #include "blkid/blkid.h"
diff --git a/SPECS/nfs-utils.spec b/SPECS/nfs-utils.spec
index 6dfddc0..7b83227 100644
--- a/SPECS/nfs-utils.spec
+++ b/SPECS/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://sourceforge.net/projects/nfs
 Version: 1.3.0
-Release: 0.54%{?dist}
+Release: 0.48%{?dist}.3
 Epoch: 1
 
 # group all 32bit related archs
@@ -126,19 +126,12 @@ Patch095: nfs-utils-1.3.0-mount-use-minor-default.patch
 Patch096: nfs-utils-1.3.0-mount-restore-econn.patch
 Patch097: nfs-utils-1.3.0-exportfs-path-comp.patch
 #
-# RHEL7.5
+# RHEL7.4-Z
 #
-Patch098: nfs-utils-1.3.0-mount-eacces.patch
-Patch099: nfs-utils-1.3.0-mount-minorversion.patch
-Patch100: nfs-utils-1.3.0-mountstats-shebang.patch
-Patch101: nfs-utils-1.3.0-nfsdcltrack-warning01.patch
-Patch102: nfs-utils-1.3.0-mount-addressfailed.patch
-Patch103: nfs-utils-1.3.0-mount-nfsvers.patch
-Patch104: nfs-utils-1.3.0-server-chgrpcpipefs.patch
-Patch105: nfs-utils-1.3.0-nfsdcltrack-invalops.patch
-Patch106: nfs-utils-1.3.0-nfs-man-v2.patch
-Patch107: nfs-utils-1.3.0-nfs-iostat-no-dev.patch
-Patch108: nfs-utils-1.3.0-mount-t-nfs4.patch
+Patch098: nfs-utils-1.3.0-mount-addressfailed.patch
+Patch099: nfs-utils-1.3.0-mount-eacces.patch
+Patch100: nfs-utils-1.3.0-mount-minorversion.patch
+Patch101: nfs-utils-1.3.0-mount-t-nfs4.patch
 
 Patch1000: nfs-utils-1.2.1-statdpath-man.patch
 Patch1001: nfs-utils-1.2.1-exp-subtree-warn-off.patch
@@ -390,28 +383,14 @@ This package also contains the mount.nfs and umount.nfs program.
 %patch096 -p1
 # 1389046 Pacemaker node fenced out due to redundant export...
 %patch097 -p1
-# 1479573 - RHEL7.4: NFS mount to DELL/EMC Isilon servers fails...
+# 1498959 - RHEL7.4: service nfs-server start fails the first time...
 %patch098 -p1
-# 1489262 - nfs-utils: minorversion can't work
+# 1518718 - RHEL7.4: NFS mount to DELL/EMC Isilon servers fails...
 %patch099 -p1
-# 987031 - nfs-utils - shebang with /usr/bin/env 
+# 1547681 - nfs-utils: minorversion can't work
 %patch100 -p1
-# 1475462 - nfsdcltrack -d should log to syslog without...
+# 1551927 - Incorrect NFS version string reported for NFSv4.2 mounts
 %patch101 -p1
-# 1450528 - RHEL7.4: service nfs-server start fails the first... 
-%patch102 -p1
-# 1496822 - mount.nfs calls mount() with nfsvers setting from...
-%patch103 -p1
-# 1358333 - nfs-server: Possibility to change rpc_pipefs mount point
-%patch104 -p1
-# 1461349 - nfsdcltrack should return error code instead of 0....
-%patch105 -p1
-# 1452461 - NFSv2 is supported at RHEL 7 nfs server end after making...
-%patch106 -p1
-# 1508046 - nfsiostat errors on 'no device mounted on /sys/kernel/debug...
-%patch107 -p1
-# 1547506 - Incorrect NFS version string reported for NFSv4.2 mounts
-%patch108 -p1
 
 %patch1000 -p1
 %patch1001 -p1
@@ -656,7 +635,6 @@ fi
 %{_unitdir}/*
 %attr(755,root,root) /usr/lib/systemd/scripts/nfs-utils_env.sh
 %{_prefix}/lib/systemd/system-generators/nfs-server-generator
-%{_prefix}/lib/systemd/system-generators/rpc-pipefs-generator
 
 %attr(4755,root,root)	/sbin/mount.nfs
 /sbin/mount.nfs4
@@ -664,29 +642,17 @@ fi
 /sbin/umount.nfs4
 
 %changelog
-* Thu Feb 22 2018 Steve Dickson <steved@redhat.com> 1.3.0-0.54
-- mount: move handling of "-t nfs4" into nfs_nfs_version() (bz 1547506)
+* Wed Mar 14 2018 Steve Dickson <steved@redhat.com> 1.3.0-0.48_4.3
+- mount: move handling of "-t nfs4" into nfs_nfs_version() (bz 1551927)
 
-* Tue Jan  2 2018 Steve Dickson <steved@redhat.com> 1.3.0-0.53
-- nfs(5): updated mount information to say 4.1 (bz 1452461) 
+* Thu Feb 22 2018 Steve Dickson <steved@redhat.com> 1.3.0-0.48_4.2
+- mount: Fix problems with parsing minorversion= (bz 1547681)
 
-* Fri Nov  3 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.52
-- nfs(5): update some version information (bz 1452461)
-- nfsiostat: avoid parsing "no device mounted ..." line (bz 1508046)
+* Thu Nov 30 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.48_4.1
+- mount: handle EACCES during version negotiation (bz 1518718)
 
-* Thu Oct 12 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.51
-- systemd: add a generator for the rpc_pipefs mountpoint (bz 1358333)
-- nfsdcltrack: return an non-zero value for invalid options (bz 1461349)
-
-* Thu Oct  5 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.50
+* Fri Oct  6 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.48_4
 - rpc.nfsd: Do not fail when all address families are not support (bz 1450528)
-- mount.nfs: merge in vers= and nfsvers= options (bz 1496822)
-
-* Tue Sep 19 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.49
-- mount: handle EACCES during version negotiation (bz 1479573)
-- mount: Fix problems with parsing minorversion= (bz 1489262)
-- mountstats:  Remove a shebang (bz 987031)
-- nfsdcltrack: remove a warning (bz 1475462)
 
 * Mon Jun 19 2017 Steve Dickson <steved@redhat.com> 1.3.0-0.48
 - exportfs: fix path comparison in unexportfs_parsed() (bz 1389046)