From 51df58e4d7018d431d1d26a0589f87bdd8f7f642 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Tue, 22 Jan 2008 19:36:09 +0000 Subject: [PATCH] - Added -S/--since to the nfsstat(1) manpage - The wording in the exportfs man page can be a bit confusing, implying that "exportfs -u :/foo" will unexport /foo from all hosts, which it won't - Removed nfsprog option since the kernel no longer supports it. - Removed mountprog option since the kernel no longer supports it. - Stop segfaults on amd64 during warnings messages. - Fix bug when both crossmnt and fsid are set. --- nfs-utils-1.1.1-export-manpage.patch | 53 ++++++++++++++++++++++++ nfs-utils-1.1.1-mount-rm-mountprog.patch | 23 ++++++++++ nfs-utils-1.1.1-mount-rm-nfsprog.patch | 23 ++++++++++ nfs-utils-1.1.1-mountd-crossmnt.patch | 45 ++++++++++++++++++++ nfs-utils-1.1.1-nfsstat-manpage.patch | 49 ++++++++++++++++++++++ nfs-utils-1.1.1-xlog-valist.patch | 42 +++++++++++++++++++ nfs-utils.spec | 26 ++++++++++-- 7 files changed, 257 insertions(+), 4 deletions(-) create mode 100644 nfs-utils-1.1.1-export-manpage.patch create mode 100644 nfs-utils-1.1.1-mount-rm-mountprog.patch create mode 100644 nfs-utils-1.1.1-mount-rm-nfsprog.patch create mode 100644 nfs-utils-1.1.1-mountd-crossmnt.patch create mode 100644 nfs-utils-1.1.1-nfsstat-manpage.patch create mode 100644 nfs-utils-1.1.1-xlog-valist.patch diff --git a/nfs-utils-1.1.1-export-manpage.patch b/nfs-utils-1.1.1-export-manpage.patch new file mode 100644 index 0000000..71ced11 --- /dev/null +++ b/nfs-utils-1.1.1-export-manpage.patch @@ -0,0 +1,53 @@ +commit efbda485ff5b3d5916971e1af656d2c21307af30 +Author: Steve Dickson +Date: Sat Nov 3 09:14:57 2007 -0400 + + The wording in the exportfs man page can be a bit confusing, implying + that "exportfs -u :/foo" will unexport /foo from all hosts, which it won't. + + This patch cleans that wording up and adds a couple examples on how to + unexport directories + + Signed-off-by: Steinar H. Gunderson + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/utils/exportfs/exportfs.man.orig nfs-utils-1.1.1/utils/exportfs/exportfs.man +--- nfs-utils-1.1.1/utils/exportfs/exportfs.man.orig 2008-01-22 13:02:18.000000000 -0500 ++++ nfs-utils-1.1.1/utils/exportfs/exportfs.man 2008-01-22 13:11:52.000000000 -0500 +@@ -167,11 +167,13 @@ all entries listed in + are removed from the kernel export tables, and the file is cleared. This + effectively shuts down all NFS activity. + .P +-To remove individual export entries, one can specify a ++To remove individual export entries, specify a + .I host:/path + pair. This deletes the specified entry from + .B etab + and removes the corresponding kernel entry (if any). ++To remove one or more exports to several hosts, use ++.BR "exportfs -ua" . + .P + .\" -------------------- Dumping the Export Table ----------------- + .SS Dumping the Export Table +@@ -202,6 +204,21 @@ allowing asynchronous writes, one would + .nf + .B "# exportfs -o async django:/usr/tmp + .fi ++.P ++To unexport the ++.B /usr/tmp ++directory: ++.P ++.nf ++.B "# exportfs -u django:/usr/tmp ++.fi ++.P ++To unexport all the directories listed in ++.B /etc/exports: ++.P ++.nf ++.B "# exportfs -au ++.fi + .\" -------------------- DEPENDENCIES ----------------------------- + .SH DEPENDENCIES + Exporting to IP networks, DNS and NIS domains does not enable clients diff --git a/nfs-utils-1.1.1-mount-rm-mountprog.patch b/nfs-utils-1.1.1-mount-rm-mountprog.patch new file mode 100644 index 0000000..d5717f5 --- /dev/null +++ b/nfs-utils-1.1.1-mount-rm-mountprog.patch @@ -0,0 +1,23 @@ +commit 72ada109b86622db8009e774ebc96a7a92094e8a +Author: Steve Dickson +Date: Wed Jan 16 12:01:13 2008 -0500 + + The kernel doesn't support the underlying parts needed for changing the + MNT program number. + + Signed-off-by: Chuck Lever + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/utils/mount/stropts.c.orig nfs-utils-1.1.1/utils/mount/stropts.c +--- nfs-utils-1.1.1/utils/mount/stropts.c.orig 2008-01-22 14:04:16.000000000 -0500 ++++ nfs-utils-1.1.1/utils/mount/stropts.c 2008-01-22 14:09:54.000000000 -0500 +@@ -304,9 +304,6 @@ static struct mount_options *rewrite_mou + if (option) + mnt_server.pmap.pm_port = atoi(option); + mnt_server.pmap.pm_prog = MOUNTPROG; +- option = po_get(options, "mountprog"); +- if (option) +- mnt_server.pmap.pm_prog = atoi(option); + option = po_get(options, "mountvers"); + if (option) + mnt_server.pmap.pm_vers = atoi(option); diff --git a/nfs-utils-1.1.1-mount-rm-nfsprog.patch b/nfs-utils-1.1.1-mount-rm-nfsprog.patch new file mode 100644 index 0000000..c1fbb61 --- /dev/null +++ b/nfs-utils-1.1.1-mount-rm-nfsprog.patch @@ -0,0 +1,23 @@ +commit 72bc295da78bafff92762b8afbb298ac16d1ff43 +Author: Steve Dickson +Date: Wed Jan 16 12:00:32 2008 -0500 + + The kernel hasn't supported the underlying parts needed for changing the + NFS program number for a very long time. + + Signed-off-by: Chuck Lever + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/utils/mount/stropts.c.orig nfs-utils-1.1.1/utils/mount/stropts.c +--- nfs-utils-1.1.1/utils/mount/stropts.c.orig 2007-10-18 23:07:28.000000000 -0400 ++++ nfs-utils-1.1.1/utils/mount/stropts.c 2008-01-22 14:02:51.000000000 -0500 +@@ -317,9 +317,6 @@ static struct mount_options *rewrite_mou + po_remove_all(options, "port"); + } + nfs_server.pmap.pm_prog = NFS_PROGRAM; +- option = po_get(options, "nfsprog"); +- if (option) +- nfs_server.pmap.pm_prog = atoi(option); + + option = po_get(options, "nfsvers"); + if (option) { diff --git a/nfs-utils-1.1.1-mountd-crossmnt.patch b/nfs-utils-1.1.1-mountd-crossmnt.patch new file mode 100644 index 0000000..4e7a93a --- /dev/null +++ b/nfs-utils-1.1.1-mountd-crossmnt.patch @@ -0,0 +1,45 @@ +commit 2d77e3a27b7b211f303fcc3a813a044838dad970 +Author: Steve Dickson +Date: Sat Jan 19 07:59:26 2008 -0500 + + Fix bug when both crossmnt and fsid are set. + + When exported a filesystems with option inherited (by the crossmnt + option) from a higherlevel filesystem, ignore filesystem specific + options like FSID and explicit UUID. + + Signed-off-by: NeilBrown + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/utils/mountd/cache.c.orig nfs-utils-1.1.1/utils/mountd/cache.c +--- nfs-utils-1.1.1/utils/mountd/cache.c.orig 2008-01-22 14:15:12.000000000 -0500 ++++ nfs-utils-1.1.1/utils/mountd/cache.c 2008-01-22 14:16:48.000000000 -0500 +@@ -571,20 +571,25 @@ static int dump_to_cache(FILE *f, char * + qword_print(f, path); + qword_printint(f, time(0)+30*60); + if (exp) { +- qword_printint(f, exp->e_flags); ++ int different_fs = strcmp(path, exp->e_path) != 0; ++ ++ if (different_fs) ++ qword_printint(f, exp->e_flags & ~NFSEXP_FSID); ++ else ++ qword_printint(f, exp->e_flags); + qword_printint(f, exp->e_anonuid); + qword_printint(f, exp->e_anongid); + qword_printint(f, exp->e_fsid); + write_fsloc(f, exp, path); + write_secinfo(f, exp); + #if USE_BLKID +- if (exp->e_uuid == NULL) { ++ if (exp->e_uuid == NULL || different_fs) { + char u[16]; + if (get_uuid(path, NULL, 16, u)) { + qword_print(f, "uuid"); + qword_printhex(f, u, 16); + } +- } else if (exp->e_uuid) { ++ } else { + qword_print(f, "uuid"); + qword_printhex(f, exp->e_uuid, 16); + } diff --git a/nfs-utils-1.1.1-nfsstat-manpage.patch b/nfs-utils-1.1.1-nfsstat-manpage.patch new file mode 100644 index 0000000..4393beb --- /dev/null +++ b/nfs-utils-1.1.1-nfsstat-manpage.patch @@ -0,0 +1,49 @@ +commit b1e64b99a97b27d850d7a615b291aa9aeb2972ab +Author: Steve Dickson +Date: Fri Oct 26 07:57:10 2007 -0400 + + Added -S/--since to the nfsstat(1) manpage + + Author: David Richter + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/utils/nfsstat/nfsstat.man.orig nfs-utils-1.1.1/utils/nfsstat/nfsstat.man +--- nfs-utils-1.1.1/utils/nfsstat/nfsstat.man.orig 2007-10-18 23:07:28.000000000 -0400 ++++ nfs-utils-1.1.1/utils/nfsstat/nfsstat.man 2008-01-22 12:57:08.000000000 -0500 +@@ -72,8 +72,27 @@ Display all of the above facilities. + .B \-v, \-\-verbose + This is equivalent to \fB\-o all\fR. + .TP ++.BI "\-S, \-\-since " file ++Instead of printing current statistics, ++.B nfsstat ++imports statistics from ++.I file ++and displays the difference between those and the current statistics. ++Valid input ++.IR file "s may be in the form of " ++.B /proc/net/rpc/nfs ++(raw client stats), ++.B /proc/net/rpc/nfsd ++(raw server stats), or saved output from ++.B nfsstat ++itself (client and/or server stats). Any statistics missing from a saved ++.B nfsstat ++output ++.I file ++are treated as zeroes. ++.TP + .B \-Z, \-\-sleep +-Instead of printing statistics and immediately exiting, ++Instead of printing current statistics and immediately exiting, + .B nfsstat + takes a snapshot of the current statistics and pauses until it receives + .B SIGINT +@@ -81,6 +100,7 @@ takes a snapshot of the current statisti + .BR Ctrl-C ), + at which point it takes another snapshot and displays the difference + between the two. ++.\" --------------------- EXAMPLES ------------------------------- + .SH EXAMPLES + .TP + .B nfsstat \-o all \-234 diff --git a/nfs-utils-1.1.1-xlog-valist.patch b/nfs-utils-1.1.1-xlog-valist.patch new file mode 100644 index 0000000..2e041da --- /dev/null +++ b/nfs-utils-1.1.1-xlog-valist.patch @@ -0,0 +1,42 @@ +commit 399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2 +Author: Steve Dickson +Date: Thu Jan 17 11:25:37 2008 -0500 + + Stop segfaults on amd64 during warnings messages by creating + a second va_list in xlog_backend() and then use that va_list + to print messages on stderr. + + Signed-off-by: Steinar H. Gunderson + Signed-off-by: Steve Langasek + Signed-off-by: Steve Dickson + +diff -up nfs-utils-1.1.1/support/nfs/xlog.c.orig nfs-utils-1.1.1/support/nfs/xlog.c +--- nfs-utils-1.1.1/support/nfs/xlog.c.orig 2007-10-18 23:07:28.000000000 -0400 ++++ nfs-utils-1.1.1/support/nfs/xlog.c 2008-01-22 14:13:36.000000000 -0500 +@@ -133,9 +133,14 @@ xlog_enabled(int fac) + void + xlog_backend(int kind, const char *fmt, va_list args) + { ++ va_list args2; ++ + if (!(kind & (L_ALL)) && !(logging && (kind & logmask))) + return; + ++ if (log_stderr) ++ va_copy(args2, args); ++ + if (log_syslog) { + switch (kind) { + case L_FATAL: +@@ -171,9 +176,9 @@ xlog_backend(int kind, const char *fmt, + #else + fprintf(stderr, "%s: ", log_name); + #endif +- +- vfprintf(stderr, fmt, args); ++ vfprintf(stderr, fmt, args2); + fprintf(stderr, "\n"); ++ va_end(args2); + } + + if (kind == L_FATAL) diff --git a/nfs-utils.spec b/nfs-utils.spec index 717e308..99e1d38 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://sourceforge.net/projects/nfs Version: 1.1.1 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 # group all 32bit related archs @@ -37,7 +37,12 @@ Patch09: nfs-utils-1.1.1-fsloc-nohide.patch Patch90: nfs-utils-1.1.0-mount-fsc.patch %endif -#Patch100: nfs-utils-1.0.9-compile.patch +Patch100: nfs-utils-1.1.1-nfsstat-manpage.patch +Patch101: nfs-utils-1.1.1-export-manpage.patch +Patch102: nfs-utils-1.1.1-mount-rm-nfsprog.patch +Patch103: nfs-utils-1.1.1-mount-rm-mountprog.patch +Patch104: nfs-utils-1.1.1-xlog-valist.patch +Patch105: nfs-utils-1.1.1-mountd-crossmnt.patch Group: System Environment/Daemons Provides: exportfs = %{epoch}:%{version}-%{release} @@ -99,8 +104,12 @@ This package also contains the mount.nfs and umount.nfs program. %patch90 -p1 %endif -# Do the magic to get things to compile -#%patch100 -p1 +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 # Remove .orig files find . -name "*.orig" | xargs rm -f @@ -264,6 +273,15 @@ fi %attr(4755,root,root) /sbin/umount.nfs4 %changelog +* Tue Jan 22 2008 Steve Dickson 1.1.1-2 +- Added -S/--since to the nfsstat(1) manpage +- The wording in the exportfs man page can be a bit confusing, implying + that "exportfs -u :/foo" will unexport /foo from all hosts, which it won't +- Removed nfsprog option since the kernel no longer supports it. +- Removed mountprog option since the kernel no longer supports it. +- Stop segfaults on amd64 during warnings messages. +- Fix bug when both crossmnt and fsid are set. + * Sat Jan 5 2008 Steve Dickson 1.1.1-1 - Updated to latest upstream release, nfs-utils-1.1.1 - Added the removal of sm-notify.pid to nfslock init script.