Hello community, here is the log from the commit of package nfs-utils for openSUSE:Factory checked in at Mon Nov 16 14:24:37 CET 2009. -------- --- nfs-utils/nfs-utils.changes 2009-10-06 14:15:12.000000000 +0200 +++ /mounts/work_src_done/STABLE/nfs-utils/nfs-utils.changes 2009-11-05 04:19:01.000000000 +0100 @@ -1,0 +2,26 @@ +Thu Nov 5 03:16:22 UTC 2009 - nfbrown@novell.com + +- New upsteam release - 1.2.1 + Includes new config file: /etc/nfsmount.conf and + man page. +- nfs.init + * implement try-restart in a more gentle fashion + so that active mounts are not lost. Also allow + for the fact that binary has changed when finding + and killing running daemons. (bnc#5439110) +- start-statd + * try-restart the firewall after starting statd + as the firewall might need to update to reflect + a new port number. +- Start nfs services if any nfs related sysctl + is set in /etc/sysctl.conf + +------------------------------------------------------------------- +Fri Oct 30 05:43:32 CET 2009 - nfbrown@suse.de + +- Kill processes on NFS mounts when unmounting + for shutdown. This allows any 'sync' to happen + before we turn off the network. + (bnc#503640) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- fork-start-statd.patch nfs-utils-1.1.2-connect-UDP.patch nfs-utils-1.1.2-try-before-mount.patch nfs-utils-1.1.3.tar.bz2 rpc.gssd-catch-signal.patch sm-notify-no-sync.patch svcgssd-mem-leak New: ---- idmapd.conf nfs-utils-1.2.1.tar.bz2 start-statd ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nfs-utils.spec ++++++ --- /var/tmp/diff_new_pack.AyQIUr/_old 2009-11-16 14:15:32.000000000 +0100 +++ /var/tmp/diff_new_pack.AyQIUr/_new 2009-11-16 14:15:32.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package nfs-utils (Version 1.1.3) +# spec file for package nfs-utils (Version 1.2.1) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -26,8 +26,8 @@ %endif Url: http://nfs.sourceforge.net Summary: Support Utilities for Kernel nfsd -Version: 1.1.3 -Release: 20 +Version: 1.2.1 +Release: 1 Group: Productivity/Networking/NFS License: GPL v2 or later BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -45,14 +45,10 @@ Source8: fw-server Source9: mkinitrd-setup.sh Source10: mkinitrd-boot.sh +Source11: idmapd.conf +Source12: start-statd Patch0: nfs-utils-1.0.7-bind-syntax.patch -Patch1: nfs-utils-1.1.2-try-before-mount.patch -Patch2: nfs-utils-1.1.2-connect-UDP.patch -Patch3: sm-notify-no-sync.patch -Patch4: rpc.gssd-catch-signal.patch -Patch5: fork-start-statd.patch -Patch6: warn-nfs-udp.patch -Patch7: svcgssd-mem-leak +Patch1: warn-nfs-udp.patch %description This package contains the NFS utilities. You can tune the number of @@ -131,12 +127,6 @@ %setup -q -n nfs-utils-%{version} -a 1 %patch0 -p1 %patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 cp %{S:6} . %build @@ -148,6 +138,7 @@ --enable-nfsv4 \ --enable-gss \ --enable-mount \ + --enable-mountconfig \ --with-krb5=/usr/lib/mit make cd nfs @@ -160,7 +151,7 @@ done %install -make install DESTDIR=$RPM_BUILD_ROOT +make install-strip DESTDIR=$RPM_BUILD_ROOT rm -f linux-nfs/Makefile* # rc-script install -d $RPM_BUILD_ROOT/etc/init.d @@ -172,7 +163,7 @@ mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates install -m 644 %{SOURCE4} $RPM_BUILD_ROOT/var/adm/fillup-templates # idmapd setup -install -m 644 utils/idmapd/idmapd.conf $RPM_BUILD_ROOT/etc/idmapd.conf +install -m 644 %{S:11} $RPM_BUILD_ROOT/etc/idmapd.conf mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/rpc_pipefs mkdir -p -m 755 $RPM_BUILD_ROOT/var/lib/nfs/v4recovery mkdir -p -m 755 $RPM_BUILD_ROOT/usr/share/omc/svcinfo.d @@ -187,6 +178,8 @@ install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts install -m 755 %{S:9} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-nfs.sh install -m 755 %{S:10} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-nfs.sh +install -m 755 %{S:12} $RPM_BUILD_ROOT/usr/sbin/start-statd +install -m 644 utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc/nfsmount.conf %clean rm -rf $RPM_BUILD_ROOT @@ -220,6 +213,7 @@ %defattr(-,root,root) %config /etc/init.d/nfs %config /etc/idmapd.conf +%config /etc/nfsmount.conf %dir /lib/mkinitrd %dir /lib/mkinitrd/scripts /lib/mkinitrd/scripts/setup-nfs.sh @@ -240,6 +234,7 @@ /usr/sbin/sm-notify /usr/sbin/start-statd %{_mandir}/man5/idmapd.conf.5.gz +%{_mandir}/man5/nfsmount.conf.5.gz %{_mandir}/man5/nfs.5.gz %{_mandir}/man8/mount.nfs.8.gz %{_mandir}/man8/nfsstat.8.gz ++++++ idmapd.conf ++++++ [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = localdomain [Mapping] Nobody-User = nobody Nobody-Group = nobody ++++++ nfs.init ++++++ --- /var/tmp/diff_new_pack.AyQIUr/_old 2009-11-16 14:15:32.000000000 +0100 +++ /var/tmp/diff_new_pack.AyQIUr/_new 2009-11-16 14:15:32.000000000 +0100 @@ -39,6 +39,9 @@ opt="" mnt="" nfs=$NFS_START_SERVICES +if [ "x$nfs" != "xyes" ] +then nfs=no +fi while read what where type options rest ; do case "$what" in @@ -89,6 +92,9 @@ if test "$NFS4_SUPPORT" = yes ; then NEED_IDMAPD=yes fi +if grep -E '^(sunrpc|fs.nfs)' /etc/sysctl.conf > /dev/null 2>&1 ; then + nfs=yes +fi check_portmap() { # check if either portmap or rpcbind is running @@ -144,7 +150,7 @@ do_start_idmapd() { mount_rpc_pipefs - # as idmapd needs to be run be server and client + # as idmapd needs to be run by server and client # check if there is already a idmapd running if checkproc $IDMAPD_BIN && test -f $IDMAPD_SERVER_STATE; then killproc -HUP $IDMAPD_BIN @@ -164,7 +170,7 @@ echo -n "Not starting NFS client services - no NFS found in /etc/fstab:" rc_status -u ;; - start-yes|reload-yes|force-start-*) + start-yes|force-start-*) echo -n "Starting NFS client services:" if ! check_portmap ; then echo "portmap/rpcbind is not running" @@ -239,7 +245,18 @@ echo -n " root filesystem is on NFS" rc_status -s else - + # kill process to maximise chance that umount succeeds + mnt=`awk '$3 ~ /^nfs4*$/ {print $2}' /proc/mounts` + runlevel=`runlevel | awk '{print $2}'` + if test "$runlevel" -eq 0 -o "$runlevel" -eq 6; then + if test -n "$mnt" ; then + /sbin/mkill -TERM $mnt + fi + fi + + # if filesystems are not busy, wait for unmount to complete.. + umount -at nfs,nfs4 + # if they are still busy, do a lazy unmount anyway. umount -alt nfs,nfs4 # stop gssd @@ -271,7 +288,14 @@ rc_status -v fi ;; - restart*|force-reload*) + reload*|force-reload*) + # only IDMAP has any sense in which 'reload' makes sense. + if checkproc $IDMAPD_BIN; then + killproc -HUP $IDMAPD_BIN + fi + rc_status + ;; + restart*) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop @@ -301,13 +325,28 @@ rc_status -v ;; try-restart*|condrestart*) - $0 status - if test $? -eq 0; then - $0 restart - else - rc_reset + # This restart is not only conditional on the services already + # running, but is also gentler in that NFS filesystems are + # not unmounted or remounted. + # It is possible that the programs have been reinstalled so + # we pass a basename rather than a full path to checkproc and killproc + echo -n "Restarting NFS services:" + if checkproc ${GSSD_BIN##*/}; then + echo -n " gssd" + killproc ${GSSD_BIN##*/} + startproc $GSSD_BIN fi - rc_status + if checkproc ${IDMAPD_BIN##*/}; then + echo -n " idmapd" + killproc ${IDMAPD_BIN##*/} + startproc $IDMAPD_BIN + fi + if checkproc ${STATD_BIN##*/}; then + echo -n " statd" + killproc ${STATD_BIN##*/} + /usr/sbin/start-statd + fi + rc_status -v ;; *) echo "Usage: $0 {start|stop|status|reload|force-reload|restart|try-restart}" ++++++ nfs-utils-1.0.7-bind-syntax.patch ++++++ --- /var/tmp/diff_new_pack.AyQIUr/_old 2009-11-16 14:15:32.000000000 +0100 +++ /var/tmp/diff_new_pack.AyQIUr/_new 2009-11-16 14:15:32.000000000 +0100 @@ -2,11 +2,13 @@ support/include/misc.h | 3 support/include/nfslib.h | 1 ================================================================================ -Index: nfs-utils-1.1.2/support/nfs/exports.c -=================================================================== ---- nfs-utils-1.1.2.orig/support/nfs/exports.c -+++ nfs-utils-1.1.2/support/nfs/exports.c -@@ -627,6 +627,8 @@ bad_option: +--- + support/nfs/exports.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- nfs-utils-1.2.1.orig/support/nfs/exports.c ++++ nfs-utils-1.2.1/support/nfs/exports.c +@@ -621,6 +621,8 @@ bad_option: } else if (strncmp(opt, "replicas=", 9) == 0) { ep->e_fslocmethod = FSLOC_REPLICA; ep->e_fslocdata = strdup(opt+9); ++++++ nfs-utils-1.1.3.tar.bz2 -> nfs-utils-1.2.1.tar.bz2 ++++++ ++++ 116840 lines of diff (skipped) ++++++ start-statd ++++++ #!/bin/sh -p # nfsmount calls this script when mounting a filesystem with locking # enabled, but when statd does not seem to be running (based on # /var/run/rpc.statd.pid). # It should run run statd with whatever flags are apropriate for this # site. PATH=/sbin:/usr/sbin:/bin:/usr/bin rpc.statd --no-notify # in case firewall needs to punch a hole for the # statd port... /etc/init.d/SuSEfirewall2_setup try-restart > /dev/null 2>&1 ++++++ warn-nfs-udp.patch ++++++ --- /var/tmp/diff_new_pack.AyQIUr/_old 2009-11-16 14:15:33.000000000 +0100 +++ /var/tmp/diff_new_pack.AyQIUr/_new 2009-11-16 14:15:33.000000000 +0100 @@ -1,8 +1,12 @@ -Index: nfs-utils-1.1.3/utils/mount/nfs.man -=================================================================== ---- nfs-utils-1.1.3.orig/utils/mount/nfs.man -+++ nfs-utils-1.1.3/utils/mount/nfs.man -@@ -438,6 +438,8 @@ Specifying +--- + utils/mount/nfs.man | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ + utils/mount/nfsmount.c | 3 + + utils/mount/stropts.c | 13 +++++++ + 3 files changed, 99 insertions(+) + +--- nfs-utils-1.2.1.orig/utils/mount/nfs.man ++++ nfs-utils-1.2.1/utils/mount/nfs.man +@@ -497,6 +497,8 @@ Specifying .B proto=udp forces all traffic types to use UDP. .IP @@ -11,7 +15,7 @@ If the .B proto mount option is not specified, the -@@ -452,6 +454,8 @@ The +@@ -511,6 +513,8 @@ The option is an alternative to specifying .BR proto=udp. It is included for compatibility with other operating systems. @@ -20,28 +24,19 @@ .TP 1.5i .B tcp The -@@ -799,7 +803,7 @@ dropped requests, but this can result in - and server load. - .P - However, UDP can be quite effective in specialized settings where --the network’s MTU is large relative to NFS’s data transfer size (such -+the network's MTU is large relative to NFS's data transfer size (such - as network environments that enable jumbo Ethernet frames). In such - environments, trimming the - .B rsize -@@ -811,6 +815,8 @@ in a single frame) is advised. This r - the loss of a single MTU-sized network frame results in the loss of +@@ -896,6 +900,8 @@ in a single frame) is advised. This r + the loss of a single MTU-sized network frame results in the loss of an entire large read or write request. .P +Please see also the WARNINGS section below. +.P - TCP is the default transport protocol used for all modern NFS + TCP is the default transport protocol used for all modern NFS implementations. It performs well in almost every conceivable - network environment and provides excellent guarantees against data -@@ -1179,6 +1185,83 @@ of Access Control Lists that are semanti - NFS version 4 ACLs are not fully compatible with POSIX ACLs; as such, + network environment and provides excellent guarantees against data +@@ -1444,6 +1450,83 @@ of Access Control Lists that are semanti + NFS version 4 ACLs are not fully compatible with POSIX ACLs; as such, some translation between the two is required - in an environment that mixes POSIX ACLs and NFS version 4. + in an environment that mixes POSIX ACLs and NFS version 4. +.SH WARNINGS +Using NFS over UDP on high-speed links such as Gigabit +.BR "can cause silent data corruption" . @@ -122,10 +117,8 @@ .SH FILES .TP 1.5i .I /etc/fstab -Index: nfs-utils-1.1.3/utils/mount/nfsmount.c -=================================================================== ---- nfs-utils-1.1.3.orig/utils/mount/nfsmount.c -+++ nfs-utils-1.1.3/utils/mount/nfsmount.c +--- nfs-utils-1.2.1.orig/utils/mount/nfsmount.c ++++ nfs-utils-1.2.1/utils/mount/nfsmount.c @@ -263,6 +263,9 @@ parse_options(char *old_opts, struct nfs if (!strcmp(opteq+1, "udp")) { nfs_pmap->pm_prot = IPPROTO_UDP; @@ -136,47 +129,16 @@ #if NFS_MOUNT_VERSION >= 2 data->flags &= ~NFS_MOUNT_TCP; } else if (!strcmp(opteq+1, "tcp") && -Index: nfs-utils-1.1.3/utils/mount/stropts.c -=================================================================== ---- nfs-utils-1.1.3.orig/utils/mount/stropts.c -+++ nfs-utils-1.1.3/utils/mount/stropts.c -@@ -389,14 +389,28 @@ static struct mount_options *nfs_rewrite - po_remove_all(options, "proto"); - } - if (strcmp(option, "udp") == 0) { -+ static int once = 0; - nfs_server.pmap.pm_prot = IPPROTO_UDP; - po_remove_all(options, "proto"); -+ if (!once) -+ fprintf(stderr, -+ "Using NFS over UDP can cause data corruption.\n" -+ "Please refer to the WARNINGS section of the nfs(5) manual page.\n"); -+ once = 1; -+ - } - } - p = po_rightmost(options, "tcp", "udp"); - switch (p) { - case PO_KEY2_RIGHTMOST: - nfs_server.pmap.pm_prot = IPPROTO_UDP; -+ {static int once = 0; -+ if (!once) -+ fprintf(stderr, -+ "Using NFS over UDP can cause data corruption.\n" -+ "Please refer to the WARNINGS section of the nfs(5) manual page.\n"); -+ once = 1; -+ } - break; - case PO_KEY1_RIGHTMOST: - nfs_server.pmap.pm_prot = IPPROTO_TCP; -@@ -565,11 +579,24 @@ static int nfs_try_nfs23mount(struct nfs - static int nfs_try_nfs4mount(struct nfsmount_info *mi) +--- nfs-utils-1.2.1.orig/utils/mount/stropts.c ++++ nfs-utils-1.2.1/utils/mount/stropts.c +@@ -530,11 +530,24 @@ static int nfs_sys_mount(struct nfsmount { - char **extra_opts = mi->extra_opts; + char *options = NULL; + int result; + char *proto; + static int once = 0; - if (po_join(mi->options, extra_opts) == PO_FAILED) { + if (po_join(opts, &options) == PO_FAILED) { errno = EIO; return 0; } @@ -193,4 +155,4 @@ + if (verbose) - printf(_("%s: text-based options: '%s'\n"), + printf(_("%s: trying text-based options '%s'\n"), ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de