summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2011-06-29 10:22:47 -0400
committerSteve Dickson <steved@redhat.com>2011-06-29 10:22:47 -0400
commit67b5b8a2cab38fe2f5aa24b87914c1c3c358e4e5 (patch)
tree66138a7b1280a8ec9f60a0f3d68a14d5c176e581 /ChangeLog
parent057d2add27d1e05fed3ae7206ee043b6c1fda45a (diff)
downloadnfs-utils-67b5b8a2cab38fe2f5aa24b87914c1c3c358e4e5.tar.gz
nfs-utils-67b5b8a2cab38fe2f5aa24b87914c1c3c358e4e5.tar.xz
nfs-utils-67b5b8a2cab38fe2f5aa24b87914c1c3c358e4e5.zip
Updated ChangeLog with all the commits of the current release.
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog2415
1 files changed, 934 insertions, 1481 deletions
diff --git a/ChangeLog b/ChangeLog
index efef742..4a2d7f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2063 +1,1516 @@
-commit 3030aded70e616cdeac4223785754b86a33b587d
-Author: Eberhard Kuemmerle <e.kuemmerle@fz-juelich.de>
-Date: Mon Sep 27 13:24:48 2010 -0400
+commit 057d2add27d1e05fed3ae7206ee043b6c1fda45a
+Author: NeilBrown <neilb@suse.de>
+Date: Tue Jun 28 13:24:33 2011 -0400
- Added the -p <principal> flag to the svcgssd manpage
+ Do not compile unnecessary files when the libmount code is enable
- Signed-off-by: Eberhard Kuemmerle <E.Kuemmerle@fz-juelich.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6cc96cada639a823961d5d8a136cbcdc8b8952b8
-Author: Eberhard Kuemmerle <e.kuemmerle@fz-juelich.de>
-Date: Mon Sep 27 13:16:23 2010 -0400
+commit 30ebf04700654deddbf5f57d95e84ec69cea8610
+Author: Prem Karat <prem.karat@linux.vnet.ibm.com>
+Date: Tue Jun 28 11:53:40 2011 -0400
- svcgssd: Adding a <-p principal> flag
+ mount.nfs: Don't hard code source and destination
- Allow the principal that is used to get the machines creds definable
- on the command like with the new '-p <principal>'. This is useful
- in cluster environments.
+ Currently souce and destination parameters should be passed as first and
+ second paramter while using mount.nfs. This patch allows them to be passed
+ anywhere while mounting.
- Signed-off-by: Eberhard Kuemmerle <E.Kuemmerle@fz-juelich.de>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 837796686ad8f9178c7b6855ada728a53ae511e3
-Author: David Lecorfe <dlecorfec@gmail.com>
-Date: Mon Sep 27 13:29:31 2010 -0400
-
- nfs-iostat.py: don't wait for an extra interval when given a count
+ Current functionality is
+ mount.nfs source destn -o <options>
+ This patch will allow to do this
+ mount.nfs -o <options> source destn
+ or
+ mount.nfs -o <options> source -o <options> destn
- If I invoke the tool with an interval of 10 and a count of 2, it will:
- - show the summary
- - sleep 10s
- - show the stats for the last 10s
- - sleep 10s
- - exit
-
- Signed-off-by: David Lecorfe <dlecorfec@gmail.com>
+ Signed-off-by: Prem Karat <prem.karat@linux.vnet.ibm.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit eaa588a137b0b2f38aa9e9c542635a222e51ee48
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:16:34 2010 -0400
+commit b3e190c4adfc9ec47567c968bd000d282d07b05e
+Author: NeilBrown <neilb@suse.de>
+Date: Tue Jun 28 11:36:31 2011 -0400
- nfsd: Enable IPv6 support in rpc.nfsd again.
+ mount: improve signal management when locking mtab
- Revert commit b2a3cd59 so that rpc.nfsd can create IPv6 listener
- sockets for the kernel.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit c18e9a780f376b868e62b75abe64b0fd9915ada5
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:14:34 2010 -0400
-
- mountd: Update mountd/exportfs man pages to reflect IPv6 changes
+ As mount.nfs can run setuid it must be careful about how the user can
+ interact with in. In particular it needs to ensure it does not
+ respond badly to any signals that the user might be able to generate.
- Document IPv6 support in rpc.mountd and exportfs, and clarify existing
- language in the man page.
+ This is particularly an issue while updating /etc/mtab (when that is
+ not linked to /proc/mounts). If the user can generate a signal which
+ kills mount.nfs while /etc/mtab is locked, then it will leave the file
+ locked, and could possibly corrupt mtab (particularly if 'ulimit 1'
+ was previously issued).
- Clean up: Use bold consistently for program names, and italics
- consistently for file names. Use "rpc.mountd" consistently as the
- name of the mountd daemon.
+ Currently lock_mtab does set some handlers for signals, but not
+ enough. It arranges for every signal up to (but not including)
+ SIGCHLD to cause mount.nfs to unlock mdadm promptly exit ... even if
+ the default behaviour would be to ignore the signal. SIGALRM is
+ handled specially, and signals after SIGCHLD are left with their
+ default behaviour. This includes for example SIGXFSZ which can be
+ generated by the user running "ulimit 1".
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 7e454e03131f56872639fe7b62b726479b22c087
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:13:39 2010 -0400
-
- mountd: Use MNT status values instead of NFSERR
+ So: change this so that some signals are left unchanged, SIGALRM is
+ handled as required, and all signals that the user can generate are
+ explicitly ignored.
- Clean up: The MNT protocol has its own enum type defining error
- status values. While the values can be the same as the NFSERR enum
- type on some systems, it's not guaranteed to be true everywhere.
+ The remainder still cause mount.nfs to print a message, unlock mtab, and
+ exit.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit ef32b76ae37926faacaf4b8121eba638567c4692
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:11:18 2010 -0400
+commit a99b7846e2abec5e26ab6b764b921d79559e0a0f
+Author: J. Bruce Fields <bfields@redhat.com>
+Date: Mon Jun 27 12:31:07 2011 -0400
- mountd: Fix up version and usage messages
+ mountd: move fsidtype-specific code to helpers
- Clean up: rpc.mountd is no longer known as kmountd. Use the program's
- basename rather than the full pathname for the usage message. Display
- a version message at start up similar to statd's.
+ Now we can move these big switch statements into helper functions.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 2c15cf2963367dee7106964c38ab7b1e30ba347d
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:09:49 2010 -0400
+commit e6559fd0b7b63f5d152d33d598dc74d78df30ecb
+Author: J. Bruce Fields <bfields@redhat.com>
+Date: Mon Jun 27 12:30:36 2011 -0400
- mountd: Unregister mountd if my_svc_run() returns
+ mountd: gather fsid information into one struct
- Fix a long standing bug: when my_svc_run() returns, mountd should
- unregister itself with the local rpcbind so that it can subsequently
- start cleanly.
+ A large part of nfsd_fh() is concerned with extracting
+ fsid-type-specific information from the fsid, then matching that
+ information with information from the export list and the filesystem.
- Log a more helpful error message in this case.
+ Moving all that information into one struct will allow some further
+ simplifications.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit b551b1fd0052de9b8c674b30c39d9f2a1e9d79cc
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:09:10 2010 -0400
+commit 13a0a61d037f2cc09e7997a96ce5822b9317883b
+Author: J. Bruce Fields <bfields@redhat.com>
+Date: Mon Jun 27 12:29:51 2011 -0400
- mountd: Support TI-RPC mountd listener
+ mountd: prefer explicit subexports over crossmnt parents
- If TI-RPC is available, use it to create mountd's svc listener. If
- not, use the old function, rpc_init(), to create mountd's listener.
+ If a parent is exported with crossmnt, and if a child is also explicitly
+ exported, then both exports could potentially produce matches in this
+ loop; that isn't a bug.
- IPv6 can be supported if TI-RPC is available. In this case,
- /etc/netconfig is searched to determine which transports to advertise.
+ Instead of warning and ignoring the second match we find, we should
+ instead prefer whichever export is deeper in the tree, so that
+ children's options can override those of their parents.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Reported-by: Olga Kornievskaia <aglo@citi.umich.edu>
+ Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit c5571da8e92f87fc9ec6e8aa8075c69497361c87
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 10:06:35 2010 -0400
+commit f8d26c1db9a260597828685c7f62e1b29e78285f
+Author: Jeff Layton <jlayton@redhat.com>
+Date: Wed Jun 22 15:52:55 2011 -0400
- mountd: Make NFS version checks more strict
+ manpage: add section on character class matches to exports(5)
- Ensure users and programmers specify NFS version numbers correctly.
- This also makes the next patch more clean.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 05f93b531d59df6e976d9b40c97b51546524040a
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Sep 27 09:50:11 2010 -0400
+commit cb6676aea5bcfcbeaf868e53177eff51f4efe9a8
+Author: James Pearson <james-p@moving-picture.com>
+Date: Wed Jun 22 15:51:47 2011 -0400
- nfs-utils: Fix source code character encoding
-
- Minor clean up.
+ nfs-utils: remove possibly false statement from exports.man
- Most modern Linux distributions set UTF-8 locales. Standardize the
- character encoding of source files on UTF-8, to squelch vim com-
- plaints.
-
- I probably missed a few spots.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 5341111d4b34bcd1b1263d5ed215cbe375aa9314
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Sep 27 09:35:26 2010 -0400
-
- libnfs.a: Remove support/nfs/fstab.c
+ A very minor change suggested by J. Bruce Fields <bfields@fieldses.org>
+ to remove the statement that exporting to a single host or IP address is
+ the "most common format" - as it probably isn't.
+ Signed-off-by: James Pearson <james-p@moving-picture.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 72ae199db4be7bf0092e15adaa8a43ce2434bf9f
+commit 7d71ff8e3825a7f8c2d5c9b5b9344e95e7aa1392
Author: Jeff Layton <jlayton@redhat.com>
-Date: Thu Sep 16 14:34:39 2010 -0400
+Date: Wed Jun 22 15:51:02 2011 -0400
- rpc.nfsd: mount up nfsdfs is it doesn't appear to be mounted yet
-
- There's a bit of a chicken and egg problem when nfsd is run the first
- time. On Fedora/RHEL at least, /proc/fs/nfsd is mounted up whenever nfsd
- is plugged in via a modprobe.conf "install" directive.
-
- If someone runs rpc.nfsd without plugging in nfsd.ko first,
- /proc/fs/nfsd won't be mounted and rpc.nfsd will end up using the legacy
- nfsctl interface. After that, nfsd will be plugged in and subsequent
- rpc.nfsd invocations will use that instead.
-
- This is a problem as some nfsd command-line options are ignored when the
- legacy interface is used. It'll also be a problem for people who want
- IPv6 enabled servers. The upshot is that we really don't want to use the
- legacy interface unless there is no other option.
+ manpage: add info about IPv6 configuration to exports(5)
- To avoid this situation, have rpc.nfsd check to see if the "threads"
- file is already present. If it's not, then make an attempt to mount
- /proc/fs/nfsd. This is a "best-effort" sort of thing, however so we
- just ignore the return code from the mount attempt and fall back to
- using nfsctl() if it fails.
+ The parts of the exports(5) manpage that discuss IP addressing neglect
+ IPv6 configuration. Update to include info on how to export to IPv6
+ subnets and addresses, and add a line demonstrating that to the EXAMPLE
+ section.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 63afb96b9d36e72782ad25ca496896029a9d9061
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 14:25:52 2010 -0400
+commit 545ea1098089d6396d5a70111ec231c4de967faa
+Author: Benny Halevy <benny@tonian.com>
+Date: Wed Jun 22 15:44:17 2011 -0400
- libexport.a: Enable IPv6 support in hostname.c
-
- If --enable-ipv6 is specified when building nfs-utils, libexport's
- host_foo() helpers can now return both IPv4 and IPv6 addresses.
-
- This means IPv6 presentation addresses and IPv6 DNS resolution
- results are handled properly in the mountd cache and /etc/exports,
- but does not yet enable IPv6 mountd listeners.
+ nfsstat: reorder nfs4 stats for 2.6.39
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Benny Halevy <benny@tonian.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit d901e329e380a2adc22783b1b241e414aa24cf51
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 14:21:48 2010 -0400
+commit c7ce7a4674ad446bee4dd3baf90155ce6b216816
+Author: Mi Jinlong <mijinlong@cn.fujitsu.com>
+Date: Wed Jun 22 15:41:27 2011 -0400
- mountd: Ensure cache downcall can handle IPv6 addresses
+ libexport.a: fix using bad index for loop at cltsetup()
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ In cltsetup(), when checking the address, use clp's naddr for index,
+ instead of cltarg's naddr, which it's always zero there.
+
+ Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 1ba28ec59f39de0bc4953b42556d847efbb508eb
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 14:21:08 2010 -0400
+commit b50ad13298b3e9519a9bdecb8c146c9ecf39cef8
+Author: Jeff Layton <jlayton@redhat.com>
+Date: Wed Jun 22 14:51:38 2011 -0400
- mountd: Handle IPv6 addresses in kernel auth_unix_ip upcalls
+ nfs: fix host_reliable_addrinfo
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit ffe8c9a084fec4fdd3acfcf4b36fbe434d297b82
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 14:19:19 2010 -0400
-
- mountd: clean up cache API
-
- Clean up: Squelch compiler warnings and document public parts of
- cache API.
-
- cache.c: At top level:
- cache.c:67: warning: no previous prototype for auth_unix_ip
- cache.c:123: warning: no previous prototype for auth_unix_gid
- cache.c:217: warning: no previous prototype for get_uuid
- cache.c:247: warning: no previous prototype for uuid_by_path
- cache.c:326: warning: no previous prototype for nfsd_fh
- cache.c:745: warning: no previous prototype for nfsd_export
- cache.c:820: warning: no previous prototype for cache_open
- cache.c:832: warning: no previous prototype for cache_set_fd
- cache.c:841: warning: no previous prototype for
- cache_process_req
- cache.c:921: warning: no previous prototype for cache_export
- cache.c:953: warning: no previous prototype for
- cache_get_filehandle
+ According to Neil Brown:
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 6f189dae5eb38800c8ae3e2d5c098d11fb44d7d5
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 14:17:08 2010 -0400
-
- exportfs: Enable IPv6 support in matchhostname()
+ The point of the word 'reliable' is to check that the name we get
+ really does belong to the host in question - ie that both the
+ forward and reverse maps agree.
- To gain IPv6 support in matchhostname(), simply replace the socket
- address comparison helpers with the generic versions that can handle
- IPv4 and IPv6.
+ But the new code doesn't do that check at all. Rather it simply
+ maps the address to a name, then discards the address and maps the
+ name back to a list of addresses and uses that list of addresses as
+ "where the request came from" for permission checking.
- host_addrinfo() (called by matchhostname()) returns IPv6 addresses
- only if IPv6 support is enabled.
+ This bug is exploitable via the following scenario and could allow an
+ attacker access to data that they shouldn't be able to access.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 10a6b17d3588647ab5e1ee81ba40f1ce12a5184d
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:54:21 2010 -0400
-
- mountd: Support IPv6 in mountlist_list()
+ Suppose you export a filesystem to some subnet or FQDN and also to a
+ wildcard or netgroup, and I know the details of this (maybe
+ showmount -e tells me) Suppose further that I can get IP packets to
+ your server..
- Replace inet_aton(3) and gethostbyaddr(3) calls in mountlist_list()
- with calls to the new host_foo() DNS helpers.
+ Then I create a reverse mapping for my ipaddress to a domain that I
+ own, say "black.hat.org", and a forward mapping from that domain to
+ my IP address, and one of your IP addresses.
- The new functions will support IPv6 without additional changes, once
- IPv6 is enabled in the generic hostname helpers.
+ Then I try to mount your filesystem. The IP address gets correctly
+ mapped to "black.hat.org" and then mapped to both my IP address and
+ your IP address.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 76209cdbe989ee4cdfbf489f2695ac779457e763
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:51:51 2010 -0400
-
- mountd: Handle memory exhaustion in mountlist_list()
+ Then you search through all of your exports and find that one of the
+ addresses: yours - is allowed to access the filesystem.
- I'm about to replace inet_aton(3)/gethostbyaddr(3) with
- host_pton()/host_canonname() in mountlist_list().
+ So you create an export based on the addrinfo you have which allows
+ my IP address the same access as your IP address.
- Since host_canonname() returns a string allocated with strdup(3)
- instead of xstrdup(), mountlist_list() must now deal with memory
- exhaustion properly.
+ Fix this by instead using the forward lookup of the hostname just to
+ verify that the original address is in the list. Then do a numeric
+ lookup using the address and stick the hostname in the ai_canonname.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Reviewed-by: NeilBrown <neilb@suse.de>
+ Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit a8348c2c48d45f991995707fa22a2fa441aaa907
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:48:38 2010 -0400
+commit 7235a2164aabfd8dba1f7e1577047bda45053db0
+Author: James Pearson <james-p@moving-picture.com>
+Date: Tue Jun 7 16:25:13 2011 -0400
- mountd: Add mountlist_freeall()
+ exports: Clearly Defining Exports Priorities
- I'm about to add a second bit of logic that needs to free all
- mountlist records, so introduce a helper for freeing them.
+ Added some verbiage to the exports(5) man page
+ that clearly explains the precedence around
+ how exports will work with regard to netgroups.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 454aea5dad83ca75f3154ff12ecff39169703e69
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:46:26 2010 -0400
+commit a36f2437caffb23c68fdc0900544d59198bd52b6
+Author: Neil Brown <neilb@suse.de>
+Date: Tue Jun 7 13:18:55 2011 -0400
- mountd: support IPv6 in mountlist_del_all()
+ Document "-n" for svcgssd
- Replace IPv4-specific code in the mountlist_del_all() path with code
- that is address family agnostic.
+ The svcgssd man page doesn't mention the "-n" flag.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 4210d6f0c9cad57907877bf1e5d32ebe4a27bf17
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:44:02 2010 -0400
+commit 40aed2c3fb5164195a9975ae7f15ebd4b992839d
+Author: Pavel Shilovsky <piastry@etersoft.ru>
+Date: Tue Jun 7 13:18:13 2011 -0400
- mountd: Support IPv6 in mountd's svc routines
-
- Replace IPv4-specific code with use of our generic hostname helpers
- in the routines that handle incoming MNT RPC requests.
+ mountd: Fix missing varialble assignment in auth_unix_gid
- These functions will support IPv6 without additional changes, once
- IPv6 is enabled in the generic hostname helpers.
-
- As part of this update, I've modified all of mountd's _svc routines
- to use a debug message format that is consistent with statd. It may
- be overkill for some of these; if so we can pull them out later.
+ When we get into auth_unix_gid at the second time, groups_len
+ is not 0 and ngroups variable leave as 0. Then we use ngroups
+ in getgrouplist that fails in this case. This patch fixes it.
+ Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit f35762f959cc5f29ad7817f8b7968e3792132651
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 13:39:39 2010 -0400
+commit 8935933dedcd820c2fb3dddff8b79fd5841dc217
+Author: Benny Halevy <bhalevy@panasas.com>
+Date: Mon May 23 08:37:17 2011 -0400
- mountd: add IPv6 support in auth_authenticate()
+ nfsstat: reorder nfs4 stats for 2.6.38 and up
- Make the entire auth_authenticate() code path address-family agnostic.
+ match order in 2.6.38, 2.6.39 (-rc3) and development tree
+ while at it, get rid of obsolete ds_write and ds_commit
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 29b8a7700129d9768e3e2d94c81eec9f84ba8691
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 09:32:52 2010 -0400
+commit 27dcd8a775024160e741cce53e4a402eaac3501d
+Author: NeilBrown <neilb@suse.de>
+Date: Mon May 23 08:23:51 2011 -0400
- libnfs.a: Fix API for getfh() & friends
-
- This is more of a clean-up than a behavioral change.
-
- POSIX requires that a "struct sockaddr" is the same size as a "struct
- sockaddr_in". Therefore, a variable or field of type "struct sockaddr"
- cannot contain an AF_INET6 address. However, "struct sockaddr *" is
- often used to reference a generic (ie non-address family specific)
- socket address, generating some confusion about this.
-
- The nfsctl_arg struct uses a struct sockaddr (not a pointer) to pass
- the client's IP address to the kernel. This means the legacy nfsctl()
- kernel API can never support IPv6. Fortunately for us, this legacy
- interface was replaced by a text-based cache interface a few years
- back. We don't need to support non-AF_INET addresses here.
-
- The getfh() functions in nfs-utils provide a handy C API for the
- kernel's nfsctl interface. The getfh() functions still take a struct
- sockaddr *, though, and that can imply that a non-IPv4 address can be
- passed via this API. To make it abundantly clear that only IPv4
- addresses can be used with this interface, change the synopses of
- getfh() and friends to take a struct sockaddr_in * instead of a struct
- sockaddr * .
+ supress socket error when address family is not supported
- This makes these functions conform with other places in mountd and
- exportfs that already grok the difference between a struct sockaddr
- and a struct sockaddr_in.
+ From: Suresh Jayaraman <sjayaraman@suse.de>
- While we're here...
+ It was observed that when ipv6 module was not loaded and cannot be auto-loaded,
+ when starting NFS server, the following error occurs:
+ "rpc.nfsd: unable to create inet6 TCP socket: errno 97 (Address
+ family not supported by protocol)"
- Introduce some nice documenting comments for the get_fh() functions,
- and...
+ This is obviously a true message, but does not represent an "error" when ipv6
+ is not enabled. Rather, it is an expected condition. As such, it can be
+ confusing / misleading / distracting to display it in this scenario.
- Since mountd will support IPv6 in the near future, assert that the
- family of client addresses passed to this API is indeed AF_INET, in
- order to prevent non-AF_INET addresses from ever being passed to the
- legacy nfsctl() interface.
+ This patch instead of throwing error when a socket call fails with
+ EAFNOSUPPORT, makes it as a NOTICE.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
+ Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit a88c279992f4b63e3dcaac9930e300fd4bb03dd7
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 07:28:18 2010 -0400
+commit 7a802337bfc92d0b30fe94dbd0fa231990a26161
+Author: NeilBrown <neilb@suse.de>
+Date: Mon May 23 08:19:57 2011 -0400
- mount.nfs: Don't do anything fancy if this is a remount
-
- We don't want to append "vers=4" or perform any negotiation if the
- "remount" mount option was specified. It will just end in tears.
-
- This attempts to address
-
- https://qa.mandriva.com/show_bug.cgi?id=60311
+ Remove risk of nfs_addmntent corrupting mtab
- and
+ nfs_addmntent is used to append directly to /etc/mtab.
+ If the write partially fail, e.g. due to RLIMIT_FSIZE,
+ truncate back to original size and return an error.
- https://bugzilla.linux-nfs.org/show_bug.cgi?id=187
+ See also https://bugzilla.redhat.com/show_bug.cgi?id=697975
+ (CVE-2011-1749) CVE-2011-1749 nfs-utils: mount.nfs fails to anticipate RLIMIT_FSIZE
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6f73daf5a5711dc0620f7d43c61c4fd57c0d3f80
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 16 07:26:07 2010 -0400
+commit 56f537535190d034039570bafd9a0de71b79b8f1
+Author: Ben Myers <bpm@sgi.com>
+Date: Mon May 23 08:07:00 2011 -0400
- mount.nfs: Refactor mount version and protocol autonegotiation
-
- Clean up.
-
- I'm beginning to agree with Bruce and Steve's assessment that the
- fallthrough switch case in nfs_try_mount() is more difficult to read
- and understand than it needs to be. The logic that manages
- negotiating NFS version and protocol settings is getting more complex
- over time anyway.
+ exportfs: getexportent interprets -test-client- as default options
- So let's split the autonegotiation piece out of nfs_try_mount().
+ With commit 1374c3861abdc66f3a1410e26cc85f86760b51dd Neil added a
+ -test-client- export to test the exportability of filesystems when exportfs
+ is run. When using the old cache controls (i.e. /proc/fs/nfsd is not
+ mounted) exportfs will read /proc/fs/nfs/exports to process existing
+ exports and find these test client entries. The dash at the beginning of
+ -test-client- will be cause getexportent to look for default options in the
+ rest of the string, which test-client- will not match:
- We can reduce indenting, and use cleaner switch-based logic. Also,
- adding more comments can only help.
+ exportfs: /proc/fs/nfs/exports:1: unknown keyword "test-client-(rw"
- Neil also suggested replacing the pre-call "errno = 0" trick. The
- lower-level functions may try to mount several times (given a list of
- addresses to try). errno could be set by any of those. The mount
- request will succeed at some point, and "success" is returned, but
- errno is still set to some non-zero value.
+ This patch resolves that problem (as Steve suggested) by not processing any
+ default options if we are reading the list of existing exports from the
+ kernel. Default options are converted to individual exports by exportfs so
+ the kernel won't have any regardless.
- The kernel version check in nfs_try_mount() is more or less loop
- invariant: it's impossible for the result of that test to change
- between retries. So we should be able to safely move it to the logic
- that sets the initial value of mi->version.
-
- This patch is not supposed to cause a behavioral change.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 64bf8db367fd43e80dd135b460afc157808647fa
-Author: Bian Naimeng <biannm@cn.fujitsu.com>
-Date: Thu Sep 16 07:12:47 2010 -0400
+commit c8e802c036a3f0fcd4481dae8b3ec09fb71f4118
+Author: Jim Rees <rees@umich.edu>
+Date: Wed May 18 12:42:02 2011 -0400
- rpc.idmapd: Type of idmap client should be defined by ic_id not ic_clid.
+ Removed compilation warnings from mountd/cache.c
- The type of idmap_client is defined by idmap_client.ic_id for nfs,
- so nfsd should have the same style.
+ Commit 5604b35a6 introduced a number of missing initializer
+ warnings that were missed. This patch removes those warnings.
- Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 7f77ef90ad52eced1552efc2242e063aa4501ddc
-Author: Benny Halevy <bhalevy@panasas.com>
-Date: Tue Jul 20 08:40:34 2010 +0300
-
- nfsstat: add release_lockowner to client stats
-
- Signed-off-by: Benny Halevy <bhalevy@panasas.com>
-
-commit bf6da0a22d971364dae25ec2f62c01fbd2960f07
+commit 68f7938c85258a8c54b13169dcdeae61cc1bf286
Author: Steve Dickson <steved@redhat.com>
-Date: Thu Sep 9 10:47:32 2010 -0400
+Date: Tue Apr 26 13:32:35 2011 -0400
- Cleaned up a warning from commit 44f09b7
+ nfsstat: Output headings mislabled
+
+ The badclnt and badauth headers were reversed
+ when the server side rpc stats (-s -o rpc) were
+ displayed.
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 911630538580cdaaee1c37cdf1a8b35b8ed6b23f
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed Sep 8 13:28:24 2010 -0400
+commit 2e4a7e9b50a641dc8640a5dd911ee4a2f0b2c073
+Author: Steve Dickson <steved@redhat.com>
+Date: Tue Apr 19 12:31:30 2011 -0400
- mount.nfs: Prepare way for "vers=4,rdma" mounts
-
- At some point, when the kernel starts to support "vers=4,rdma" mounts,
- we will want the mount.nfs command to pass "vers=4,rdma" mounts
- instead of rejecting them.
+ rpc.svcgssd: Segmentation fault on error
- Assuming that the kernel will reject these today with EPROTONOSUPPORT,
- that would cause the version fallback logic to go to "vers=3,rdma"
- automatically. So the extra check we have now is not needed anyway.
+ Commit 544ed73d introduced a regression that caused
+ rpc.svcgssd to seg fault on "Wrong principal in request"
+ errors in gss_accept_sec_context()
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit f99d1b8e8768ab96b51bed52f21a626ac9a4797f
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed Sep 8 13:27:31 2010 -0400
+commit 5604b35a61e22930873ffc4e9971002f578e7978
+Author: Sean Finney <sean.finney@sonyericsson.com>
+Date: Tue Apr 19 11:04:35 2011 -0400
- mount.nfs: Support an "rdma" mount option
+ nfs-utils: Increase the stdio file buffer size for procfs files
- The kernel NFS client's mount option parser recognizes a stand-alone
- "rdma" mount option, similar to the legacy "udp" and "tcp" options.
+ Previously, when writing to /proc/net/rpc/*/channel, if a cache line
+ were larger than the default buffer size (likely 1024 bytes), mountd
+ and svcgssd would split writes into a number of buffer-sized writes.
+ Each of these writes would get an EINVAL error back from the kernel
+ procfs handle (it expects line-oriented input and does not account for
+ multiple/split writes), and no cache update would occur.
- The mount.nfs command text-based mount option parser used to pass
- "rdma" straight to the kernel, but since we've started handling MNT in
- the kernel instead of in user space, "rdma" on the command line has
- not worked.
+ When such behavior occurs, NFS clients depending on mountd to finish
+ the cache operation would block/hang, or receive EPERM, depending on
+ the context of the operation. This is likely to happen if a user is a
+ member of a large (~100-200) number of groups.
- Until now, no-one has noticed, especially since an "rdma" mount option
- isn't documented in nfs(5).
+ Instead, every fopen() on the procfs files in question is followed by
+ a call to setvbuf(), using a per-file dedicated buffer of
+ RPC_CHAN_BUF_SIZE length.
- Support "rdma" in mount.nfs command, and document it in nfs(5).
+ Really, mountd should not be using stdio-style buffered file operations
+ on files in /proc to begin with. A better solution would be to use
+ internally managed buffers and calls to write() instead of these stdio
+ calls, but that would be a more extensive change; so this is proposed
+ as a quick and not-so-dirty fix in the meantime.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Sean Finney <sean.finney@sonyericsson.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 44f09b7c4c79ca184a29138078c68a4db7aeb85a
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed Sep 8 13:26:34 2010 -0400
+commit 9274e94db85bac04e170414cb8e0f4be271cde90
+Author: Sean Finney <sean.finney@sonyericsson.com>
+Date: Tue Apr 19 11:05:47 2011 -0400
- mount.nfs: Use nfs_nfs_protocol() for checking for proto=rdma
+ mountd: Use a dynamic buffer for storing lists of gid's
- Clean up: Now that nfs_get_proto() can recognize "rdma" we can re-use
- nfs_nfs_protocol() instead of ad hoc checks for "proto=rdma".
+ Previously, in auth_unix_gid, group lists were stored in an array of
+ hard-coded length 100, and in the situation that the group lists for a
+ particular call were too large, the array was swapped with a dynamically
+ allocated/freed buffer. For environments where users are commonly in
+ a large number of groups, this isn't an ideal approach.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit a77ca5c6a79486dc8c5a4c327fe5310f5d497766
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed Sep 8 13:25:56 2010 -0400
-
- getport: Recognize "rdma" and "rdma6" netid
-
- The mount.nfs command must recognize the values of "rdma" and "rdma6"
- with the "proto=" mount option. Typically the mount.nfs command
- relies on libtirpc or getprotobyname(3) to recognize netids and
- translate them to protocol numbers.
-
- RFCs 5665 and 5666 define the "rdma" and "rdma6" netids. IANA defines
- a specific port number for NFS over RDMA (20049), but has not provided
- a protocol name and number for RDMA transports, and is not expected
- to. The best we can do is translate these by hand, as needed, to get
- RDMA mount requests to the kernel without erroring out.
+ Instead, use malloc/realloc to grow the list on an as-needed basis.
- Only the forward translation is needed until such time that "rdma" and
- "rdma6" start to appear in rpcbind registries. For now, the version
- and transport negotiation logic is skipped, avoiding rpcbind queries
- for RDMA mounts.
-
- Note: As of kernel 2.6.36, the kernel's NFS over RDMA transport
- capability does not support IPv6.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Sean Finney <sean.finney@sonyericsson.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 57f36cd692c56b3b62705b5fafef4c25561a39ff
-Author: Guillaume Rousse <Guillaume.Rousse@inria.fr>
-Date: Thu Sep 9 10:33:47 2010 -0400
+commit a99269230a0e77e7bed4fa31c9547f0d61c7f206
+Author: Karel Zak <kzak@redhat.com>
+Date: Wed Apr 6 12:39:21 2011 -0400
- Clarification about options supported by different versions
+ mount: add --enable-libmount-mount
- Signed-off-by: Guillaume Rousse <Guillaume.Rousse@inria.fr>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit b7df3370555877598d9f2ef49fae2ad4458e9f72
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Sep 9 10:27:17 2010 -0400
-
- libexport.a: Refactor init_netmask()
+ This patch allows to link mount.nfs with libmount from util-linux >=
+ v2.19. The new libmount based code is enabled by CONFIG_LIBMOUNT and
+ is stored in mount_libmount.c. The old code is not affected by this
+ change.
- Instead of a single function that can handle both AF_INET and AF_INET6
- addresses, two separate functions might be cleaner.
+ The libmount does not have officially stable API yet, so the
+ --enable-libmount-mount is marked as experimental in the configure
+ help output.
- The original plan was to keep code redundancy at a minimum, but the
- resulting code was cumbersome at best. I think I've traded a little
- extra code for something that will be much easier to read, understand,
- and maintain.
+ The ./configure option is the same as we use in util-linux to enable
+ support for libmount in mount(8).
- I've also eliminated the "#if / #endif" instances inside the functions.
+ The addr= (and some other options necessary for remount/umount) are
+ stored to /etc/mtab or to /dev/.mount/utab. The utab file is *private*
+ libmount file. It's possible that some mount options (for example
+ user=) will be moved to kernel, so the utab will not be necessary.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 60abb9889cea52022adf9c8bb946e9d19d79f9ed
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 31 15:31:57 2010 -0400
-
- libexport.a: IPv6 support in client_check()
+ About libmount:
- Introduce support for IPv6 in client_check()'s helpers. The local
- addrs_match() twins are no longer needed since we can use
- nfs_compare_addrs() now.
+ * supports systems without and with regular /etc/mtab
+ * does not store VFS and FS mount options in userspace
+ * manages user= option and evaluate permissions
+ * parses VFS mount options and generate MS_* flags
+ * parses /etc/{fstab,mtab}, /proc/mounts or /proc/self/mountinfo
+ * long-term goal is to use the same code in all mount.<type> helpers
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 965b15b855c0c621462256b0ab687fc32644255a
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 31 15:30:14 2010 -0400
-
- libexport.a: IPv6 support for client_init_subnet()
-
- To parse and store an IPv6 host or subnet address, init_netmask()
- needs to handle 128 bit subnet masks.
-
- Unfortunately what once was a pretty simple little function has grown
- much larger. This logic must now not only parse IPv6 addresses
- correctly, but must also distinguish between IPv4 and IPv6.
+ Note, use
- To avoid code duplication, I'm "bending" the cardinal rule of not
- using "#ifdef" inside functions.
+ LIBMOUNT_DEBUG=0xffff mount.nfs foo:/path /path
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 2824097496f6b154befbf3b3d15dacf237b07f83
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 31 15:29:02 2010 -0400
-
- libexport.a: Prepare init_subnetwork() for IPv6 support
+ to debug the library.
- Retire the slash32 logic in inet_netmask() in favor of a more generic
- netmask parser that can support IPv6 addresses.
+ On systems with util-linux v2.19 the findmnt(8) command uses libmount
+ to list all/selected mount points:
- If an invalid IP address string is given to inet_addr(3), it returns
- INADDR_NONE, which is actually a "valid" address (255.255.255.255).
- We're none the wiser to the substitution until something breaks later.
+ $ findmnt /path
+ $ findmnt --mtab /path
- This patch provides better sanity checking of the parsed address, now
- that such an error can be reported to client_init()'s callers.
- We can also check the prefixlen value a little more carefully as well.
+ the --mtab appends userspace mount options (e.g. user=) to the output.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ CC: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 03fc34b23c2bff48f54c2d889d7851a31fb64a3d
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 31 15:27:19 2010 -0400
+commit c01e5ca6179b8f5b041605d9bbd75a0f76812d54
+Author: Karel Zak <kzak@redhat.com>
+Date: Wed Apr 6 11:36:40 2011 -0400
- libexport.a: Use host helper to parse address in client_init()
+ mount: move generic functions to utils.c and network.c
- Take the first step towards making it possible to parse either IPv4 or
- IPv6 addresses in client_init(). It won't handle IPv6 until
- host_pton() has IPv6 support enabled, and it still doesn't deal with
- IPv6 netmasks yet.
+ Move generic code that could be shared between standard mount.nfs and
+ libmount version to utils.c and network.c.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ CC: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 502edf1df5e727cf88b19b634f60392652f35ddc
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 31 15:25:35 2010 -0400
+commit d6c1b35c6b40243bfd6fba2591c9f8f2653078c0
+Author: Kevin Coffman <kwc@citi.umich.edu>
+Date: Wed Apr 6 11:25:03 2011 -0400
- libexport.a: Prepare to recognize IPv6 addresses in client_gettype()
+ nfs-utils: Add support to svcgssd to limit the negotiated enctypes
- The current open-coded parsing logic in client_gettype() will be hard
- to modify to recognize IPv6 addresses. Use a more generic mechanism
- for detecting IP presentation addresses.
+ Recent versions of Kerberos libraries negotiate and use
+ an "acceptor subkey". This negotiation does not consider
+ that a service may have limited the encryption keys in its
+ keytab. A patch (http://src.mit.edu/fisheye/changelog/krb5/?cs=24603)
+ has been added to the MIT Kerberos code to allow an application
+ to indicate that it wants to limit the encryption types negotiated.
+ (This functionality has been available on the client/initiator
+ side for a while. The new patch adds this support to the
+ server/acceptor side.)
- IPv6 will be enabled automatically in client_gettype() when host_pton()
- is changed to support IPv6 addresses.
+ This patch adds support to read a recently added nfsd
+ proc file to determine the encryption types supported by
+ the kernel and calls the function to limit encryption
+ types negotiated for the acceptor subkey.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Kevin Coffman <kwc@citi.umich.edu>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 26fd34002585e6a5aa09204b0b01d836fa83dcf3
+commit 73840ef610accf4cf667427bc64805377c0d8394
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 24 07:19:34 2010 -0400
+Date: Wed Apr 6 10:53:57 2011 -0400
- exportfs: Use xlog() for error reporting
+ exports: add a configurable time-to-live for the kernel cache entries
- exportfs already invokes xlog_open() because libexport.a uses xlog()
- exclusively for error reporting and debugging messages. If we can
- use xlog() throughout exportfs itself, that enables xlog debugging
- messages everywhere in the code path.
+ From: Trond Myklebust <Trond.Myklebust@netapp.com>
- In addition, use xlog() instead of fprintf(stderr) for reporting
- errors in exportfs.c, to be consistent with libexport.a and other
- components of nfs-utils.
+ The fedfs ldap server will specify a ttl for its entries.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 6d7babe6afae068e8a1054f785785d374788f5ee
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 24 07:18:04 2010 -0400
-
- exportfs: exportfs.c no longer needs #include "xmalloc.h"
-
- Clean up: No calls to xmalloc() or xstrdup() here. No need for the
- double #include of xmalloc.h.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit e22f5a9c8e53a2373e8a939771e964ad315cdc5f
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 24 07:16:10 2010 -0400
-
- statd: statd fails to monitor if no reverse mapping of mon_name exists
+ Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
- Commit 8ce130c4 switched in the new statd_canonical_name() function
- that constructs a "unique" name statd can use to uniquely identify a
- monitor record.
+ This is a refactoring change only. There should be no change in
+ behavior.
- The legacy statd would monitor a client that sent an IP address with
- no reverse map as its caller_name. To remain bug-for-bug compatible,
- allow this case in the new statd.
+ Original patch had updates to utils/mountd/junctions.c, which no
+ longer exists. These are not included here.
- This shouldn't be a problem: statd_canonical_name() needs to create
- a unique name for the monitored host so it can keep track of monitor
- requests from the same remote. The IP address itself should work as
- well as the host's canonical name, in case there is no reverse
- mapping.
+ Create a macro for the default cache TTL, which is used in several
+ places besides the export cache.
- We still enforce the requirement that a mon_name that is a DNS name
- must have a forward map to an IP address.
+ Make e_ttl unsigned.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 1bb84a09ff58d1314826945db2f3f1f63015e263
+commit 38e4c685410885a6d464ddd44eff4fd5e7f8459f
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 24 07:13:54 2010 -0400
+Date: Wed Apr 6 10:49:52 2011 -0400
- libexport: Fix IP address check in check_netgroup()
-
- Neil Brown reports that recent changes to replace
- gethostby{addr,name}(3) with get{addr,info}name(3) may have
- inadvertently broken netgroup support.
-
- There used to be a gethostbyaddr(3) call in the third paragraph in
- check_netgroup(). The reason for that gethostbyaddr(3) call was that
- the first innetgr(3) call has already confirmed that hname is not a
- member of the netgroup. We also need to confirm that, if hname
- happens to be an IP address, the hostname bound to that IP address is
- not a member of the netgroup, either.
-
- Fix this by restoring appropriate address to hostname mapping of hname
- before retrying the innetgr(3) call.
+ statd: Remove vestigial "-w" option from man page synopsis
- See http://marc.info/?l=linux-nfs&m=128084830214653&w=2 .
+ The synopsis of rpc.statd in its man page lists "-w" as a valid
+ option. There is currently no support in the source code for a "-w"
+ option.
- Introduced by commit 0509d3428f523776ddd9d6e9fa318587d3ec7d84.
+ BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=199
- Reviewed-by: Neil Brown <neilb@suse.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit abdc32b6af6f38a741a481aeefb5623916152498
+commit b57cd77c13831051ad974ae027d96cd88a8d0c59
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Aug 24 07:06:14 2010 -0400
+Date: Wed Apr 6 10:48:38 2011 -0400
- bexport: Add a common exit label to check_netgroup()
+ mount.nfs: Don't leak socket in nfs_ca_sockname()
- check_netgroup() is going to be changed to free dynamically
- allocated resources before it returns, so a common
- exit point is needed.
+ Ensure the test socket is always closed before nfs_ca_sockname()
+ returns. Otherwise it's orphaned.
- Reviewed-by: Neil Brown <neilb@suse.de>
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 396aac50f5addea2f4d62c25600ca68788a56d97
-Author: Guillaume Rousse <Guillaume.Rousse@inria.fr>
-Date: Tue Aug 17 17:47:38 2010 -0400
-
- Fix the description of nfsversion mount option in the man nfs page
+ BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=197
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit e2003650c68cf47806fb24f7d88fae5524b70aab
+commit 502eef09d8050ffb87d394397c2780e1ef042d68
Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:12:52 2010 -0400
+Date: Wed Apr 6 10:46:06 2011 -0400
- Remove warnings from nfsctl.c
+ Removed a warning from v4root.c
- nfsctl.c: In function 'expsetup':
- nfsctl.c:112: warning: signed and unsigned type in conditional expression
+ v4root.c:176:9: warning: variable 'ret' set but not used
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 1e472b3476cc6d7b95573b7d630d0fc51bebadf3
-Author: Steve Dickson <steved@redhat.com>
-Date: Wed Aug 4 10:48:17 2010 -0400
-
- Removed warnings from mountd.c
-
- mountd.c: In function 'mount_null_1_svc':
- mountd.c:195: warning: unused parameter 'rqstp'
- mountd.c:195: warning: unused parameter 'argp'
- mountd.c:195: warning: unused parameter 'resp'
- mountd.c: In function 'mount_dump_1_svc':
- mountd.c:213: warning: unused parameter 'argp'
- mountd.c: In function 'mount_umnt_1_svc':
- mountd.c:224: warning: unused parameter 'resp'
- mountd.c: In function 'mount_umntall_1_svc':
- mountd.c:248: warning: unused parameter 'argp'
- mountd.c:248: warning: unused parameter 'resp'
- mountd.c: In function 'mount_export_1_svc':
- mountd.c:258: warning: unused parameter 'argp'
- mountd.c: In function 'mount_exportall_1_svc':
- mountd.c:269: warning: unused parameter 'argp'
- mountd.c: In function 'mount_dump_1_svc':
- mountd.c:216: warning: unused parameter 'argp'
- mountd.c: In function 'mount_umnt_1_svc':
- mountd.c:227: warning: unused parameter 'resp'
- mountd.c: In function 'mount_umntall_1_svc':
- mountd.c:251: warning: unused parameter 'argp'
- mountd.c:251: warning: unused parameter 'resp'
- mountd.c: In function 'mount_export_1_svc':
- mountd.c:261: warning: unused parameter 'argp'
- mountd.c: In function 'mount_exportall_1_svc':
- mountd.c:272: warning: unused parameter 'argp'
-
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 14e6ec262e58e962c2d7e9161ca9c56529de3170
+commit c2fa189a0467c25666f014cf9ff2576a9f54d682
Author: Steve Dickson <steved@redhat.com>
-Date: Wed Aug 4 10:41:18 2010 -0400
-
- Removed warnings from idmapd.c
-
- idmapd.c:120: warning: missing initializer
- idmapd.c:120: warning: (near initialization for 'nfsd_ic[0].ic_event')
- idmapd.c:121: warning: missing initializer
- idmapd.c:121: warning: (near initialization for 'nfsd_ic[1].ic_event')
- idmapd.c: In function 'flush_nfsd_cache':
- idmapd.c:173: warning: comparison between signed and unsigned integer expressions
- idmapd.c: In function 'dirscancb':
- idmapd.c:384: warning: unused parameter 'fd'
- idmapd.c:384: warning: unused parameter 'which'
- idmapd.c: In function 'svrreopen':
- idmapd.c:468: warning: unused parameter 'fd'
- idmapd.c:468: warning: unused parameter 'which'
- idmapd.c:468: warning: unused parameter 'data'
- idmapd.c: In function 'clntscancb':
- idmapd.c:474: warning: unused parameter 'fd'
- idmapd.c:474: warning: unused parameter 'which'
- idmapd.c: In function 'nfsdcb':
- idmapd.c:488: warning: unused parameter 'fd'
- idmapd.c: In function 'nfscb':
- idmapd.c:663: warning: unused parameter 'fd'
- idmapd.c: In function 'validateascii':
- idmapd.c:850: warning: comparison between signed and unsigned integer expressions
- idmapd.c:858: warning: comparison between signed and unsigned integer expressions
- idmapd.c: In function 'getfield':
- idmapd.c:916: warning: comparison between signed and unsigned integer expressions
-
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 2ccfd2d5f390bcac7a44f8887cd3f15df1966e0f
-Author: Steve Dickson <steved@redhat.com>
-Date: Wed Aug 4 10:29:28 2010 -0400
+Date: Wed Apr 6 10:39:10 2011 -0400
- Removed warnings from configfile.c
+ Removed a warning from exportfs.c
- configfile.c:195: warning: 'inline' is not at beginning of declaration
- configfile.c:232: warning: 'inline' is not at beginning of declaration
+ exportfs.c:280:29: warning: 'exp' may be used uninitialized in this function
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit bc8fdd5ebcabe57cacd382673ca9e4a79ff7b18e
+commit b98ae9df8c4904289c9390288325058b24caa423
Author: Steve Dickson <steved@redhat.com>
-Date: Wed Aug 4 10:26:13 2010 -0400
+Date: Wed Apr 6 10:36:30 2011 -0400
- Removed warnings from svcgssd_proc.c
+ Removed a warning from conffile.c
- svcgssd_proc.c: In function 'send_response':
- svcgssd_proc.c:135: warning: unused parameter 'f'
- svcgssd_proc.c: In function 'handle_nullreq':
- svcgssd_proc.c:434: warning: comparison of unsigned expression < 0 is always false
+ conffile.c:258:19: warning: 'j' may be used uninitialized in this function
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit be5b2ed57b0e0a3da91f4ec785718302d0351199
-Author: Steve Dickson <steved@redhat.com>
-Date: Wed Aug 4 10:22:13 2010 -0400
+commit 012e1a4bf2a002e8cd4d5be3478bfa20a91cbfed
+Author: Masatake YAMATO <yamato@redhat.com>
+Date: Mon Mar 7 08:36:19 2011 -0500
- Removed warnings from network.c
+ Update man pages for /etc/exports.d
- network.c: In function 'nfs_verify_family':
- network.c:1366: warning: unused parameter 'family'
+ Man page updates for /etc/exports.d.
+ Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6b8d7c05fe738a4c7295754b4be552c703024f58
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 18:43:46 2010 -0400
+commit c7427b57e2be8ef0d57ad0618d4590c062b130f5
+Author: Masatake YAMATO <yamato@redhat.com>
+Date: Mon Mar 7 08:18:51 2011 -0500
- Removed warnings from nfs4mount.c
+ Read /etc/exports.d/*.export as extra export files
- nfs4mount.c: In function 'fill_ipv4_sockaddr':
- nfs4mount.c:149: warning: comparison between signed and unsigned integer expressions
+ This patch adding a capability to read /etc/exports.d/*.exports as
+ extra export files to exportfs.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit cf2fd4869fdb77741bca9e3f713af49b889661b3
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 18:40:31 2010 -0400
-
- Removed warnings from nfsmount.c
+ If one wants to add or remove an export entry in a script, currently
+ one may have to use sed or something tool for adding or removing the
+ line for the entry in /etc/exports file.
- nfsmount.c: In function 'nfsmount':
- nfsmount.c:513: warning: missing initializer
- nfsmount.c:513: warning: (near initialization for 'mnt_server.saddr')
- nfsmount.c:514: warning: missing initializer
- nfsmount.c:514: warning: (near initialization for 'nfs_server.saddr')
+ With the patch, adding and removing an entry from a script is much
+ easier.
+ cat<<EOF... or mv can be used for adding. rm can be used for removing.
+ Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 45a73911fff657942ec67317d000badb8e2c5282
+commit edb9b7f2ab9806afb9af31eabeb505fe454c51df
Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 18:22:32 2010 -0400
+Date: Sat Mar 5 16:17:01 2011 -0500
- Removed warnings from svcgssd.c
+ Cleaned up a warning in rpcdispatch.c
- svcgssd.c: In function 'sig_hup':
- svcgssd.c:160: warning: unused parameter 'signal'
+ rpcdispatch.c:40:20: warning: comparison between signed and unsigned
+ integer expressions
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit b8ba21cedc6aac3b2847217caf55885bb1a74805
+commit 930323817b61877d61fb8ef57229013daa2e6091
Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 18:13:45 2010 -0400
+Date: Sat Mar 5 16:13:01 2011 -0500
- Removed warnings from gssd_proc.c
+ mount: Remove MOUNT_CONFIG warnings
- gssd_proc.c: In function 'create_auth_rpc_client':
- gssd_proc.c:939: warning: comparison between signed and unsigned integer expressions
- gssd_proc.c:939: warning: comparison between signed and unsigned integer expressions
- gssd_proc.c: In function 'handle_krb5_upcall':
- gssd_proc.c:1164: warning: comparison between signed and unsigned integer expressions
- gssd_proc.c: In function 'handle_spkm3_upcall':
- gssd_proc.c:1178: warning: comparison between signed and unsigned integer expressions
+ The following changes are needed to remove compile warnings when
+ MOUNT_CONFIG is not defined
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit f4321ac3466aa9d4c4e11ba232f1ff9bea561288
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 18:08:13 2010 -0400
+commit 3ef3dc8f1e87ba7a6eaa3c2a6965aff6c80ba414
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Thu Mar 3 17:26:33 2011 -0500
- Removed warnings from krb5_util.c
+ mount: Recognize zero as a valid value for the port= option
- krb5_util.c: In function 'realm_and_service_match':
- krb5_util.c:617: warning: unused parameter 'context'
- krb5_util.c: In function 'limit_krb5_enctypes':
- krb5_util.c:1275: warning: unused parameter 'uid'
+ While zero is not a valid IP port number, zero does represent a valid
+ value for "port=". It means "query rpcbind to discover the actual
+ non-zero port number to use". So the parsing functions that handle
+ "port=" should not flag zero as an invalid value.
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit f89b109c04a8eab81bfa8b8fcdc7692673e13e49
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 17:53:47 2010 -0400
+commit b3a4dbfb61dad59829f5191d727267b2ea45937a
+Author: Mi Jinlong <mijinlong@cn.fujitsu.com>
+Date: Wed Feb 9 11:29:42 2011 -0500
- Removed warnings from gssd_main_loop.c
+ Gssd: modify wrong err message at handle_gssd_upcall
- gssd_main_loop.c: In function 'dir_notify_handler':
- gssd_main_loop.c:64: warning: unused parameter 'sig'
- gssd_main_loop.c:64: warning: unused parameter 'si'
- gssd_main_loop.c:64: warning: unused parameter 'data'
+ Modify wrong err message at handle_gssd_upcall when
+ sscanf encryption types fail.
+ Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit d2c329ba4b7ccdea76bcc857a73206eab68428f8
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 17:45:17 2010 -0400
+commit 45e4597bd570ed40221f51887cde7d7f096f55e7
+Author: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+Date: Wed Feb 9 11:27:19 2011 -0500
- Removed warnings from gssd.c
+ Support AD style kerberos automatically in rpc.gss
- gssd.c: In function 'sig_hup':
- gssd.c:78: warning: unused parameter 'signal'
+ An Active Directory KDC will only grant a TGT for UPNs, getting
+ a TGT for SPNs is not possible:
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 8a72ac3280ce8f9d0f48383d47dd06c80567bc09
-Author: Steve Dickson <steved@redhat.com>
-Date: Tue Jul 20 17:19:20 2010 -0400
-
- Removed warnings from atomicio.c
+ $ kinit -k host/ib5@ADS.ORCORP.CA
+ kinit: Client not found in Kerberos database while getting initial
+ credentials
- atomicio.c: In function 'atomicio':
- atomicio.c:48: warning: comparison between signed and unsigned integer expressions
+ The correct thing to do for machine credentials is to get a TGT
+ for the computer UPN <HOSTNAME>$@REALM:
+ $ kinit -k IB5\$
+ $ klist
+ 12/22/10 11:43:47 12/22/10 21:43:47 krbtgt/ADS.ORCORP.CA@ADS.ORCORP.CA
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 14becdb7bc23f075f786325f7e953c2f928fe385
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 14:54:51 2010 -0400
-
- Removed warnings from nfsstat.c
+ Samba automatically creates /etc/krb5.keytab entry for the computer UPN,
+ this patch makes gssd_refresh_krb5_machine_credential prefer it above
+ the SPNs if it is present.
- nfsstat.c: In function 'print_callstats':
- nfsstat.c:797: warning: comparison between signed and unsigned integer
- expressions
- nfsstat.c:801: warning: comparison between signed and unsigned integer
- expressions
- nfsstat.c:802: warning: comparison between signed and unsigned integer
- expressions
- nfsstat.c:805: warning: comparison between signed and unsigned integer
- expressions
+ The net result is that nfs client works automatically out of the box
+ if samba has been used to setup kerberos via 'net ads join' 'net ads
+ keytab create'
- nfsstat.c: In function 'print_callstats_list':
- nfsstat.c:821: warning: comparison between signed and unsigned integer
- expressions
- nfsstat.c:828: warning: comparison between signed and unsigned integer
- expressions
+ Tested using Windows Server 2003 R2 as the AD server.
- nfsstat.c: In function 'unpause':
- nfsstat.c:1111: warning: unused parameter 'sig'
+ Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit b594ee2b2a1b9c0c5823a7af279488f113f91be4
+commit 730f6986f86873513fa021a450eb55ccd0f2fbff
Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 14:48:37 2010 -0400
+Date: Wed Jan 26 07:49:19 2011 -0500
- Removed warnings from nfssvc.c
+ Fixed segfault in rpc.mountd
- nfssvc.c:184: warning: comparison between signed and unsigned integer expressions
- nfssvc.c: In function 'nfssvc_setvers':
- nfssvc.c:254: warning: comparison between signed and unsigned integer expressions
- nfssvc.c: In function 'nfssvc_threads':
- nfssvc.c:280: warning: comparison between signed and unsigned integer expressions
+ A unallocated piece of memory, instead of a NULL point, was being
+ used to initialize a ->next point in the mount link list which
+ caused a segfault after a few remote accesses via the showmount
+ command.
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 7b331fb9d24a71242a6c0a45a06c49174b552c64
+commit 544ed73d5ab27c1390833d5cf93b9585c151667d
Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 14:43:26 2010 -0400
+Date: Fri Jan 14 10:12:28 2011 -0500
- Removed warnings from cache.c
-
- cache.c:812: warning: missing initializer
- cache.c:812: warning: (near initialization for 'cachelist[0].f')
- cache.c:813: warning: missing initializer
- cache.c:813: warning: (near initialization for 'cachelist[1].f')
- cache.c:814: warning: missing initializer
- cache.c:814: warning: (near initialization for 'cachelist[2].f')
- cache.c:815: warning: missing initializer
- cache.c:815: warning: (near initialization for 'cachelist[3].f')
- cache.c:816: warning: missing initializer
- cache.c:816: warning: (near initialization for 'cachelist[4].f')
- cache.c: In function 'cache_export_ent':
- cache.c:887: warning: comparison between signed and unsigned integer expressions
- cache.c:907: warning: comparison between signed and unsigned integer expressions
+ Improve debugging in svcgssd
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 9d5eaa2e939723c47649f0f112b43cc8ff414740
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 13:07:00 2010 -0400
-
- Removed warnings from fsloc.c
+ Added in gss_display_error() which translates the GSS error into the
+ actual GSS macro name. Currently only the translation of these errors
+ are logged. Since those translations are buried deep in the kerberos
+ library code, having the actual GSS macro name makes it easier to
+ follow the code.
- fsloc.c: In function 'replicas_lookup':
- fsloc.c:149: warning: unused parameter 'key'
+ Moved the nfs4_init_name_mapping() call into main() so if debug is
+ enabled the DNS name and realms will be logged during start up.
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit e10000740fc4c323dbc8d501d7c0caeae12c19b5
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:39:52 2010 -0400
+commit 57be18b9ab08148a1cc9d5af588119885720be8b
+Author: Mi Jinlong <mijinlong@cn.fujitsu.com>
+Date: Tue Jan 4 11:16:45 2011 -0500
- Removed warnings from conffile.c
-
- conffile.c: In function 'conf_parse_line':
- conffile.c:301: warning: comparison between signed and unsigned integer expressions
+ libnsm.a: modify return value to false from 0 at nsm_drop_privileges()
- conffile.c: In function 'conf_load_defaults':
- conffile.c:356: warning: unused parameter 'tr'
+ At nsm_drop_privileges(), for improving readability, unify
+ the return value.
+ Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 8810c9dd5b66a097a235e6eabd399739a44df63e
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:34:14 2010 -0400
+commit 5c498280fd9353ded3ea169841079bdae23418e2
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Mon Dec 13 14:50:45 2010 -0500
- Remove warnings from nfs_mntent.c
+ libnsm.a: sm-notify sometimes ignores monitored hosts
- nfs_mntent.c: In function 'mangle':
- nfs_mntent.c:36: warning: comparison between signed and unsigned integer expressions
+ Monitored host information is stored in files under /var/lib/nfs.
+ When visiting entries in the monitored hosts directory, libnsm.a
+ examines the value of dirent.d_type to determine if an entry is a
+ regular file.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 1ca569633e14c844e32d8e5e3a1c54be01a8b633
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:31:48 2010 -0400
-
- emove warnings from cacheio.c
+ According to readdir(3), the d_type field is not supported by all
+ file system types. My root file system happens to be one where d_type
+ isn't supported. Typical installations that use an ext-derived root
+ file system are not exposed to this issue, but those who use xfs, for
+ instance, are.
- cacheio.c: In function 'cache_flush':
- cacheio.c:352: warning: comparison between signed and unsigned integer expressions
+ On such file systems, not only are remote peers not notified of
+ reboots, but the NSM state number is never incremented. A statd warm
+ restart would not re-monitor any hosts that were monitored before
+ the restart.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 0cdfd35cecc17eb1927f15d33205e43ec66675f2
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:28:09 2010 -0400
-
- Remove warnings from svc_socket.c
-
- svc_socket.c: In function 'svcudp_socket':
- svc_socket.c:160: warning: unused parameter 'reuse'
+ When writing support/nsm/file.c, I copied the use of d_type from the
+ original statd code, so this has likely been an issue for some time.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 9c99b4633b185452614eb6c5630a30b30626a838
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:17:24 2010 -0400
-
- Removed warnings from rpcdispatch.c
+ Replace the use of d_type in support/nsm/file.c with a call to
+ lstat(2). It's extra code, but is guaranteed to work on all file
+ system types.
- rpcdispatch.c: In function 'rpc_dispatch':
- rpcdispatch.c:30: warning: comparison between signed and unsigned
- integer expressions
- rpcdispatch.c:35: warning: comparison between signed and unsigned
- integer expressions
+ Note there is a usage of d_type in gssd. I'll let gssd and rpcpipefs
+ experts decide whether that's worth changing.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit b6e0ddd7bb3843bb8bb5ff56816b31bcf17adacd
-Author: Steve Dickson <steved@redhat.com>
-Date: Mon Jul 19 12:05:51 2010 -0400
-
- Enable extra compile warnings (-Wextra) by default.
+ Fix for:
- Added -Wextra to the CFLAGS which enables more checking
- during compilation, which in turn, will hopefully flag
- potential problems before they occur.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=193
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 12af21aca517dfbaec465447d8336bcc4769f71d
-Author: Doug Nazar <nazard.michi@gmail.com>
-Date: Mon Jul 19 11:08:46 2010 -0400
+commit 089df7c754d9ebab0a7b804f396626ac95fee2e6
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Mon Dec 13 14:47:42 2010 -0500
- gssd: picking wrong creds
+ libnsm.a: Replace __attribute_noinline__
- When not using machine credentials for root, if the machine
- credential cache file is newer than the root credential file
- the wrong file will get picked. Ignore the machine file in
- this case.
+ Replace the __attribute_noinline__ form with
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit e2aa2c8c4cc21eb312a301855c2e211dedf93146
-Author: Doug Nazar <nazard.michi@gmail.com>
-Date: Mon Jul 19 10:58:47 2010 -0400
-
- mountd: Fix memcmp result comparison error for uuid match.
+ __attribute__((__noinline__)).
- Fixed Small typo in the new fs uuid comparison code
-
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit eafc5a8873b09482c71313f425080cce2031010a
-Author: Doug Nazar <nazard.michi@gmail.com>
-Date: Mon Jul 19 10:48:34 2010 -0400
-
- gssd: Fix endtime issue
+ Even though the compiler didn't complain about __attribute_malloc__,
+ also replace those in order to maintain consistent style throughout the
+ source file.
- Commit 4c5ff6d4 removed the setting of endtime for a few contexts by
- accident.
+ Fix for:
- Now to figure out why I get stale handles on submounts.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=194
+ Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 0bd7e91cea26bcfc5581290e4cdd87870da29b9e
+commit 7869a76207d3f4b3bd4ab57b4a7a8807ac2ff0c6
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Jul 19 10:09:12 2010 -0400
+Date: Mon Dec 13 14:36:15 2010 -0500
- nfs-utils: Fix C aliasing rules violation in nfs_getrpccaller()
+ sm-notify: Make use of AI_NUMERICSERV conditional
- Squelch compiler warnings reported with -Wextra:
+ Gabor Papp reports nfs-utils-1.2.3 doesn't build on his system that
+ uses glibc-2.2.5:
- In file included from statd.c:24:
- ../../support/include/rpcmisc.h: In function nfs_getrpccaller_in:
- ../../support/include/rpcmisc.h:58: warning: dereferencing type-punned
- pointer might break strict-aliasing rules
- ../../support/include/rpcmisc.h: In function nfs_getrpccaller:
- ../../support/include/rpcmisc.h:63: warning: dereferencing type-punned
- pointer might break strict-aliasing rules
+ make[3]: Entering directory
+ `/home/gzp/src/nfs-utils-1.2.3/utils/statd'
+ gcc -DHAVE_CONFIG_H -I. -I../../support/include -D_GNU_SOURCE -Wall
+ -Wextra -Wstrict-prototypes -pipe -g -O2 -MT sm-notify.o -MD
+ -MP -MF .deps/sm-notify.Tpo -c -o sm-notify.o sm-notify.c
+ sm-notify.c: In function 'smn_bind_address':
+ sm-notify.c:247: error: 'AI_NUMERICSERV' undeclared (first use in this
+ function)
+ sm-notify.c:247: error: (Each undeclared identifier is reported only
+ once
+ sm-notify.c:247: error: for each function it appears in.)
+ make[3]: *** [sm-notify.o] Error 1
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit a8715bec8bd671135f20fc0422d2a9fc0993758a
-Author: Kevin Constantine <kevin.constantine@disneyanimation.com>
-Date: Tue Jun 22 17:43:19 2010 -0400
-
- nfs-iostat.py: divide by zero with fresh mount
+ According to the getaddrinfo(3) man page, AI_NUMERICSERV is available
+ only since glibc 2.3.4. getaddrinfo(3) seems to convert strings
+ containing a number to the right port value without the use of
+ AI_NUMERICSERV, so I think we can survive on older glibc's without it.
+ It will allow admins to specify service names as well as port numbers
+ on those versions.
- When an export is freshly mounted, /proc/self/mountstats displays age = 0.
- This causes nfs-iostat.py to divide by zero throwing an error. When we
- have age = 0, other stats are greater than 0, so we'll set age = 1 and
- print the relevant stats.
+ There are uses of AI_NUMERICSERV in gssd and in nfs_svc_create(). The
+ one in nfs_svc_create() is behind HAVE_LIBTIRPC, and the other is a
+ issue only for those who want to deploy Kerberos -- likely in both
+ cases, a more modern glibc will be present. I'm going to leave those
+ two.
- Signed-off-by: Kevin Constantine <kevin.constantine@disneyanimation.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 9c3f7a220b4812c5d560db5fcacad790fc8b17af
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 13:31:38 2010 -0400
-
- libexport.a: Remove unused hostent-based DNS helper functions
+ Fix for:
- Clean up: Get rid of hostent-based DNS helper functions in
- libexport.a that have been replaced by addrinfo-based DNS helpers.
-
- None of the original code remains, so replace the copyright notice as
- well.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=195
+ Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 21015ace7d0a356b24a57540ccfeb41d941e78ed
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 13:06:40 2010 -0400
+commit e8dbaddc8465dcd07b53f8e80a537703dd0248ca
+Author: Sid Moore <learnmost@gmail.com>
+Date: Fri Dec 3 09:19:06 2010 -0500
- libexport.a: Replace matchhostname()
-
- So that exportfs can eventually support IPv6 addresses, copy statd's
- getaddrinfo(3)-based matchhostname to exportfs, with adjustments for
- dealing with export wildcards and netgroups. Until exportfs has full
- IPv6 support, however, we want to ensure that IPv6 addresses continue
- to remain blocked in the address comparison code used by exportfs. At
- a later point we'll replace much of this with the generic functions
- in sockaddr.h.
+ rpc.mountd: Checking RPC Procedure ID before process it
- Since it contains special logic for handling wildcard and netgroups,
- this function is specialized for exportfs, and does not belong in
- one of the shared libraries.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 22d6566d473f71e241c791a02435d414648c99e8
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 12:51:42 2010 -0400
+commit 3c6973c595d62dc6452967d50ae8abe69f9f8bad
+Author: Mi Jinlong <mijinlong@cn.fujitsu.com>
+Date: Mon Nov 29 10:59:10 2010 -0500
- libexport.a: Add documenting comments
+ libnfs.a: fix a bug when parse section's arg
- Clean up. Add a few additional documenting comments for globally
- visible functions.
+ When parsing section's arg at configure file, the pointer
+ should stop when fetch ']', and give the warning message.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 53928c0166dcc0acceaa995edb8551b48968b5dd
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 12:44:44 2010 -0400
+commit 86f7be64cafd17d4a3f164603484eaedb4757431
+Author: Harshula Jayasuriya <harshula@redhat.com>
+Date: Mon Nov 22 11:22:31 2010 -0500
- libexport.a: Make export_add() static
+ nfs-utils: nfsstat: has_stats() does not function correctly for NFSv4 client stats
- Clean up: export_add() is not called from outside of export.c, so make
- it a static helper.
+ The NFSv4 client procs/ops in "struct rpc_procinfo nfs4_procedures" is
+ used to generate the NFS client stats interface:
+ ------------------------------------------------------------
+ net 0 0 0 0
+ rpc 15 0 0
+ proc2 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ proc3 22 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0
+ proc4 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0
+ 0 0 0 0 0 0 0
+ ------------------------------------------------------------
+ Note, for proc4, the number 42. That is the number of stats that follow
+ on the same line. Currently nfsstat's has_stats() relies on this number
+ to be equal to CLTPROC4_SZ. Unfortunately this is not the case. I have
+ changed has_stats() not to rely on these two values being equal. This
+ should also allow nfsstat to work with different kernel versions that
+ expose a different number of NFS client ops.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 8940675a20967145b37a596334c25a54804435cc
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 12:43:55 2010 -0400
-
- libexport.a: Make export_read() return void
+ * Fix has_stats()
+ * Stop print_clnt_list() printing server stats!
+ * Describe the option -3 and -4 completely in the nfsstat manpage.
- Clean up: export_read()'s return value is always zero, and its only
- caller never checks it.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Harshula Jayasuriya <harshula@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 0509d3428f523776ddd9d6e9fa318587d3ec7d84
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 12:43:01 2010 -0400
+commit 0868dcccb9a3bf3d022a32ff31311fe371484e77
+Author: Steve Dickson <steved@redhat.com>
+Date: Sat Nov 20 15:01:21 2010 -0500
- mountd: Replace "struct hostent" with "struct addrinfo"
-
- struct hostent can store either IPv4 or IPv6 addresses, but it can't
- store both address families concurrently for the same host. Neither
- can hostent deal with parts of socket addresses that are outside of
- the sin{,6}_addr field.
+ Enable nfsidmap to compile
- Replace the use of "struct hostent" everywhere in libexport.a, mountd,
- and exportfs with "struct addrinfo". This is a large change, but
- there are so many strong dependencies on struct hostent that this
- can't easily be broken into smaller pieces.
+ Only enable the compilation of nfsidmap when libnfsidmap support it.
- One benefit of this change is that hostent_dup() is no longer
- required, since the results of getaddrinfo(3) are already dynamically
- allocated.
-
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 3ca5879be32c4c11750e12230ff588195fff0738
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 12:40:27 2010 -0400
+commit 6f07548141e710767d425e119d9823691293771d
+Author: Bryan Schumaker <bjschuma@netapp.com>
+Date: Fri Nov 19 12:01:10 2010 -0500
- exportfs: Add a common exit label in exportfs()
+ Add the new nfsidmap program
- Clean up: Reduce code duplication by introducing a goto label for
- freeing hp and exiting. This will make replacing "struct hostent *"
- with "struct addrinfo *" more straightforward in this code.
+ This patch adds the nfsidmap program to nfs-utils. This program is
+ called by the nfs idmapper through request-keys to map between
+ uid / user name and gid / group name.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
+ Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 94ce1eb94babb4c587b2826452fb053cba745098
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue Jun 22 10:41:03 2010 -0400
+commit 409487978593de13ae36be0ee56d8111ad6b3319
+Author: Steve Dickson <steved@redhat.com>
+Date: Mon Nov 22 11:33:37 2010 -0500
- libexport.a: Add helpers to manage DNS lookups
-
- Introduce DNS query helpers based on getaddrinfo(3) and
- getnameinfo(3). These will eventually replace the existing
- hostent-based functions in support/export/hostname.c.
-
- Put some of these new helpers to immediate use, where convenient.
+ Removed a couple warnings from utils/mount/stropts.c
- As they are part of libexport.a, I've added the forward declarations
- for these new functions in exportfs.h rather than misc.h, where the
- hostent-based forward declarations are currently.
+ stropts.c:740:6: warning: 'ret' may be used uninitialized in this function
+ stropts.c:653:6: warning: 'ret' may be used uninitialized in this function
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 8d61f2518bebe11c5fd0624857f83de1dceca991
-Author: NeilBrown <neilb@suse.de>
-Date: Tue Jun 22 10:37:25 2010 -0400
+commit f4968a724c1d4162a8e2b9f6a19c460cc56c95f7
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Fri Oct 29 12:56:21 2010 -0400
- Improve support for exporting btrfs subvolumes
+ nfs(5): Document remount behavior
- If you export two subvolumes of a btrfs filesystem, they will both be
- given the same uuid so lookups will be confused.
- blkid cannot differentiate the two, so we must use the fsid from
- statfs64 to identify the filesystem.
+ It appears that, for a long while, NFS "remount" mounts have
+ completely wiped the existing mount options in /etc/mtab for a given
+ mount point. This is a problem for umount.nfs, since it reads its
+ options out of /etc/mtab to find out how to do the unmount.
- We cannot tell if blkid or statfs is best without knowing internal
- details of the filesystem in question, so we need to encode specific
- knowledge of btrfs in mountd. This is unfortunate.
+ The mount(8) command provides the NFS mount subcommand with the mount
+ options to perform the remount. There are four cases to consider:
- To ensure smooth handling of this and possible future changes in uuid
- generation, we add infrastructure for multiple different uuids to be
- recognised on old filehandles, but only the preferred on is used on
- new filehandles.
+ 1. Both the device and mount directory are specified on the
+ command line, and the target mount point is in /etc/fstab
- Signed-off-by: NeilBrown <neilb@suse.de>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 9ac7a15017b876d4d8d3a4502ebaf954f36f7f54
-Author: Steve Dickson <steved@redhat.com>
-Date: Thu Jun 3 08:53:22 2010 -0400
-
- mount.nfs: silently fails when the network protocol is not found
+ 2. Only one of the device and mount directory is specified on
+ the command line, and the target mount point is in
+ /etc/fstab
- mount.nfs should display some type of error diagnostics when
- the network protocol can not be determined.
+ 3. Both the device and mount directory are specified on the
+ command line, and the target mount point is not in /etc/fstab
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 740171dea45a57e396a86fbda1579a465f101854
-Author: Steve Dickson <steved@redhat.com>
-Date: Thu Jun 3 08:32:56 2010 -0400
-
- mount: silently fails when bad option values are given
+ 4. Only one of the device and mount directory is specified on
+ the command line, and the target mount point is not in
+ /etc/fstab
- mount.nfs should not only fail when an invalid option values
- are supplied (as it does), it should also print a diagnostic
- message identifying the problem
+ Currently only case 4 works correctly. In that case, mount(8)
+ provides the correct set of mount options to the mount.nfs
+ subcommand and it can update /etc/mtab correctly.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 94c3d7c91de582cf29ff9100950ecd4a5fd1606b
-Author: Kevin Constantine <kevin.constantine@disneyanimation.com>
-Date: Wed Jun 2 08:34:14 2010 -0400
-
- nfsiostat.man: Add linebreak before --version option
+ Cases 1 and 3 replace all mount options in /etc/mtab with the options
+ provided on the command line during a remount. Case 2 replaces the
+ mount options in /etc/mtab with a mix of options from /etc/fstab and
+ /etc/mtab.
- The nfsiostat man file was missing a linebreak before the --verbose option
+ Cases 1 and 3 are historical behavior. Basically this is a formal
+ interface to allow administrators to replace the mount options in
+ /etc/mtab completely, instead of merging in new ones. The present
+ patch documents that behavior in nfs(5), and provides best practice
+ for remounting NFS mount points.
- Signed-off-by: Kevin Constantine <kevin.constantine@disneyanimation.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 291b329ad1f5a65270097f4ec3a8dd465df42669
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon May 24 06:02:22 2010 -0400
-
- mountd: Convert colons in IPv6 presentation addresses tosemicolons
+ There are near-term plans to address case 2 by fixing mount(8)
+ (provided by utils-linux-ng in most distributions).
- The /var/lib/nfs/rmtab file delineates fields in each of its lines
- with a ":". The first field contains the IP address of a client, in
- presentation format. IPv6 presentation format addresses contain
- colons, which screws up the field delineation of rmtab.
+ This is a partial fix for:
- Use a simple simple scheme to convert the colons in incoming client
- names to some other character, and then convert them back when the
- rmtab file is read.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=188
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 9e398e49be79af62fca8efb21849d8a2714dc92a
+commit 6d1a82b005994f759f2c847c0354413a24643da5
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon May 24 06:01:22 2010 -0400
+Date: Thu Oct 28 13:15:22 2010 -0400
- libexport.a: Refactor rmtab_read()
+ nfs(5): Grammar and style fixes
- Clean up: Make it easier to add IPv6 support by refactoring part of
- rmtab_read() into a helper function.
+ Clean up grammar and style issues introduced by recent updates. Also,
+ I'm not certain inappropriate options are always ignored.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 2fd2dfd9ebb2de145d50039233bd2a53b7f03062
-Author: NeilBrown <neilb@suse.de>
-Date: Mon May 24 05:55:26 2010 -0400
-
- Mountd listens on 2 different versions for NFSv2 (MOUNTv1 and MOUNTv2)
- and one for NFSv3 (MOUNTv3)
-
- When --no-nfs-version requests an NFS version to be disabled, the
- code actually disabled the MOUNT version. This works is several cases,
- but requires --no-nfs-version 1 to completely disable NFSv2, which
- is wrong.
-
- So if we do disable 1, 2, and 3. mountd complain and won't run, it
- is not possible to run just v4 - i.e. not listening for MOUNT requests
- at all (as v4 doesn't need them).
-
- So change the handling of "--no-nfs-version 2" it disable MOUNTv1 as
- well as
- MOUNTv2, and allow mountd to continue running as long as one of
- NFSv2 NFSv3 NFSv4 is enabled.
-
- Signed-off-by: NeilBrown <neilb@suse.de>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 6299a310d77e6495efdf7c50491f0b055fee2cfe
+commit ab2cdb859f738a25e2567a2ec674cfa78a0a175d
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed May 5 15:41:07 2010 -0400
+Date: Thu Oct 28 13:13:19 2010 -0400
- mountd/exportfs: Make m_addrlist field a nfs_sockaddr
-
- To store non-AF_INET addresses in the nfs_client structure, we need to
- use more than in_addr for the m_addrlist field. Make m_addrlist
- larger, then add a few helper functions to handle type casting and
- array indexing cleanly.
+ mount.nfs: mnt_freq and mnt_pass are always zero
- We could treat the nfs_client address list as if all the addresses
- in the list were the same family. This might work for MCL_SUBNETWORK
- type nfs_clients. However, during the transition to IPv6, most hosts
- will have at least one IPv4 and one IPv6 address. For MCL_FQDN, I
- think we need to have the ability to store addresses from both
- families in one nfs_client.
-
- Additionally, IPv6 scope IDs are not part of struct sin6_addr. To
- support link-local IPv6 addresses and the like, a scope ID must be
- stored.
+ Clean up.
- Thus, each slot in the address list needs to be capable of storing an
- entire socket address, and not simply the network address part.
+ No need to pass constant zeros to add_mtab() from its only call site.
+ Ensure that initialization of a struct mntent is consistent in both
+ places that it is done.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6ff1fd42db18c657fbc5f81169a566b41d53e731
+commit bc4a0c42570d5620cc1bb32428e16b9c9b5f3863
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed May 5 14:42:01 2010 -0400
+Date: Thu Oct 28 13:10:48 2010 -0400
- libexport.a: Clean up client_add()
-
- Clean up: client_add()'s current callers never set unknown m_type
- values, so the m_type check is unnecessary.
+ mount.nfs: Fix memory leak in nfs_sys_mount()
- All of client_add()'s callers are in the same source file where it is
- defined, so make it a static helper function.
+ This appears to have been left behind by last year's adjustments to
+ how the extra_opts string is constructed.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 9bb85c5e8d2285f82367c75df5530a71a9a5a5f2
+commit 1f237ac72e6f563908b350e11fd2bb866c003028
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed May 5 14:37:13 2010 -0400
+Date: Thu Oct 28 13:09:38 2010 -0400
- libexport.a: Refactor client_init()
+ mount: Fix compiler warning in nfs_parse_retry_option()
- Clean up: Move subnet hostname parsing logic out of client_init() to
- make it simpler to introduce IPv6 support.
+ stropts.c: In function nfs_parse_retry_option:
+ stropts.c:131: warning: conversion to unsigned int from long int may
+ alter its value
- Make client_init() a helper, since it's already static.
+ Make it more clear what the second argument is for, and flag the
+ switch fallthrough case.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 0a8bd742cc1412e2553f152ee0c3aab8c5570212
-Author: Mike Frysinger <vapier@gentoo.org>
-Date: Fri Apr 23 12:22:53 2010 -0400
+commit 1ea2c3be33f2eb4630c5cdb78edf2bb670b294ab
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Thu Oct 28 12:12:12 2010 -0400
- Make capabilities support optional
+ nfs-utils: Remove all uses of AI_ADDRCONFIG
- The new code using libcap is quite minor, so rather than always reqiure
- libcap support, make it a normal --enable type flag. Current default
- behavior is retained -- if libcap is found, it is enabled, else it is
- disabled like every nfs-utils version in the past.
+ It was reported that, if only "lo" is up,
- Signed-off-by: Mike Frysinger <vapier@gentoo.org>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit fbc038b7a5c7f5f102bf2c4fb149030d0092eec8
-Author: Mike Frysinger <vapier@gentoo.org>
-Date: Fri Apr 23 12:18:27 2010 -0400
-
- set +x on autogen.sh
+ mount.nfs 127.0.0.1:/export /mount
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 08e1512e4a932f41867f0b515348b9402db50cbd
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 23 12:09:35 2010 -0400
-
- libexport.a: Allow malloc(3) failures in client_lookup() and friends
+ fails with "Name or service not known".
- Clean up: Use malloc(3) instead of xmalloc() in client_lookup() and
- client_dup(), ensuring that a failed memory allocation here doesn't
- cause our process to exit suddenly.
+ "man 3 getaddrinfo" says this:
- Allocation of nfs_client records and the m_hostname string are now
- consistently handled with malloc(3), calloc(3), strdup(3), and
- free(3).
+ If hints.ai_flags includes the AI_ADDRCONFIG flag, then IPv4
+ addresses are returned in the list pointed to by res only if the
+ local system has at least one IPv4 address configured, and IPv6
+ addresses are only returned if the local system has at least
+ one IPv6 address configured.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit aa4b66b12b631885ed85f3ebe97e68b033407178
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 23 12:08:49 2010 -0400
-
- libexport.a: Allow m_hostname allocation to fail instead of exit
+ The man page oversimplifies here. A review of glibc shows that
+ getaddrinfo(3) explicitly ignores loopback addresses when deciding
+ whether an IPv4 or IPv6 address is configured.
- Clean up: Replace xstrdup() with strdup(3) in client_init(), to
- prevent the process from exiting if the memory allocation fails.
+ This behavior around loopback is a problem not just for mount.nfs,
+ but also for RPC daemons that have to start up before a system's
+ networking is fully configured and started. Given the history of
+ other problems with AI_ADDRCONFIG and the unpredictable behavior it
+ introduces, let's just remove it everywhere in nfs-utils.
- Note that both of client_init()'s callers set m_hostname equal to NULL
- before calling, thus the extra free(3) at the top of client_init() is
- unneeded.
+ This fix addresses:
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 5d954d871fb265af584faef5df6e2e7e6ada7c3b
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 23 12:02:34 2010 -0400
-
- libexport.a: Allow client_init() to fail instead of exit
-
- client_init()'s current callers can now deal correctly with a failure.
- Get rid of code that can cause our process to exit in client_init(),
- if address mask parsing or memory allocation fails.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=191
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 75cbc8d3fc9e7c3750629bd72519770ab58b868f
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 23 12:00:28 2010 -0400
+commit f8e315543b7f1db7f37a4bfe8ede3020cef62868
+Author: Jeff Layton <jlayton@redhat.com>
+Date: Thu Oct 28 09:18:33 2010 -0400
- libexport.a: Add client_free()
+ nfs-utils: fix default value for --enable-tirpc
- Clean up: Introduce a helper to free a nfs_client record.
+ We need $enable_tirpc to be a tristate. 'yes' means that someone
+ explicitly requested building with tirpc. 'no' means that it was
+ explicitly disabled. Anything else means that no one specified a value.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 7fc6f6c6b68ba7fa1be6de05ce3b9e2d97b82ea4
-Author: Steve Dickson <steved@redhat.com>
-Date: Fri Apr 16 10:56:29 2010 -0400
-
- Add in autoconf support for mountstats and nfsiostats
+ Fix it by setting the value to a blank string so that the default is
+ properly undefined.
+ Reported-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit d8ff9ef2828059bb2ee115d22f3c9579421daf54
+commit c62d756402509ca5d07c1fd4d2e5a9d78dc4171b
Author: Steve Dickson <steved@redhat.com>
-Date: Fri Apr 16 10:49:10 2010 -0400
+Date: Tue Oct 19 15:54:35 2010 -0400
- Introduce man page for the nfsiostats command
+ Updated rpc.mountd man page
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit c03fe46d62bc78cb52d400fa5a52dc4ce9947945
-Author: Steve Dickson <steved@redhat.com>
-Date: Fri Apr 16 10:46:41 2010 -0400
-
- Introduce man page for the mountstats command
+ Updated the rpc.mountd man page to no longer reference
+ v3 as the "newer" version and also mentioned v4 as
+ a supported version.
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit c4b2281c6c748b768de7a49af89660c9c1a68b11
+commit 79e9079e9af4e5c2aa1d77815df1147b26876eb8
Author: Steve Dickson <steved@redhat.com>
-Date: Fri Apr 16 13:31:57 2010 -0400
+Date: Tue Oct 19 15:54:04 2010 -0400
- Removed some miscellaneous warnings in the new gssd code.
+ Cleared up the sync option in exportfs man page
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 4c5ff6d48021731128c4fc13d51610645a6fcf5c
-Author: Kevin Coffman <kwc@citi.umich.edu>
-Date: Mon Apr 12 17:13:25 2010 -0400
+commit 6f228ea26be06572de245aed5496aaa122cca5a8
+Author: Steve Dickson <steved@redhat.com>
+Date: Fri Oct 15 17:20:28 2010 -0400
- Add support for non-DES encryption types.
+ Removed duplicate entries in export man page
- Sends a new format of context information to the kernel.
- (Requires kernel support to do anything useful.)
+ The man page's paragraphs about "refer=" and "replicas="
+ each appear twice.
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 76be349d5dd07f55797cb9920cc275667258f10f
-Author: Kevin Coffman <kwc@citi.umich.edu>
-Date: Thu Apr 15 08:32:20 2010 -0400
+commit 849b7072a04975bb5da09245fbcacb0cb754a909
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Thu Oct 14 10:33:25 2010 -0400
- Try to use kernel function to determine supported Kerberos enctypes.
+ mountd: Clear mountd registrations at start up
- This patch replaces a hard-coded list with a function to obtain
- the Kerberos encryption types that the kernel's rpcsec_gss code
- can support. Defaults to old behavior if kernel does not supply
- information.
+ Clear stale MNT registrations before mountd tries to create fresh
+ listeners, to ensure that mountd starts. This is also what statd does.
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 48d13033dcb27eb3d9ea78c39692ff7c54095950
-Author: Kevin Coffman <kwc@citi.umich.edu>
-Date: Mon Apr 12 17:06:30 2010 -0400
+commit 93dcf64cc4a9e67f693aea35c8193428015f4a30
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Wed Oct 13 13:57:52 2010 -0400
- gssd: move function limit_krb5_enctypes into the exported functions area
+ behavior as file systems that use the monolithic /sbin/mount command.
+ See the MS_NOMTAB macro in utils-linux-ng/mount/mount.c.
- cleanup: Move function limit_krb5_enctypes() from the section
- containing static functions into the section containing
- externally visible functions.
+ Note that mount(8) has MS_USERS and MS_USER in the "nomtab" category
+ as well, but mount.nfs needs to record those values so that unmounting
+ a user-mounted NFS file system can work.
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 470448e77bd673b206cf40820f966dcb8f029f27
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 16 13:03:20 2010 -0400
-
- libexport.a: export_find() should handle address parsing errors
+ While we're here, fix some white space damage in fix_opts_string().
- An address mask parsing error can cause client_init(), and therefore
- client_dup(), to make our process exit suddenly. Soon we want to add
- more complex address parsing in client_init(), so we need this
- interface to be a little more robust.
+ This is a partial fix for:
- Since export_find() can return NULL in some cases, it can handle NULL
- returns from its subroutines if an address parsing error occurs, or if
- memory is exhausted. Allow for client_dup() to return NULL instead of
- exiting sideways.
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=188
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 9b7cc679c70d00af3f44dc6a8b44a360a2423d64
+commit dc08c702a6c7f824f317af561f491635ee898a71
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Apr 16 13:02:15 2010 -0400
+Date: Wed Oct 13 13:55:10 2010 -0400
- libexport.a: Add export_free()
+ umount.nfs: Distinguish between nfs4 and nfs mounts
- Clean up: Introduce a helper to free an nfs_export record.
+ Neil Brown reports that umount.nfs is still confused by "-t nfs -o
+ vers=4" mounts.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 30eff9c26141746fb26efb1af60d5cbe7a16ebae
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 15 08:59:18 2010 -0400
-
- libexport.a: Add helper for populating m_addrlist[]
+ /etc/mtab can be confused. /proc/mounts is authoritative on the
+ fstype of a mount. Have umount.nfs consult it to determine which
+ mechanism to use for unmounting. The code to read /proc/mounts was
+ lifted from the nfsstat command.
- Clean up: Move common code that populates an nfs_client record's
- m_addrlist to a helper function. This eliminates a little code
- duplication, and makes it simpler to add IPv6 support later.
+ The code introduced by this patch may look like belt-n-suspenders, but
+ we have two use cases to consider:
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit e1c93f691348392ee36b763bf57946540891ff16
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 15 08:57:29 2010 -0400
-
- libexport.a: Reduce code duplication in client_init()
+ 1. Old kernels don't support the "vers=4" mount option, so
+ umount.nfs must look for the "nfs4" fstype
+ 2. Upcoming kernels may eliminate support the "nfs4" fstype, so
+ umount.nfs must look for the "vers=4" mount option
- Clean up: Most cases in client_init() set clp->m_naddr to zero. Move
- it to the common part of the function, and simplify the logic. This
- will make adding IPv6 support here more straightforward.
+ Thus this logic checks for "nfs4" first then looks for the NFS version
+ setting.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 1fc99e6d5d6b9401e380ee756a4251c86a3b8d54
-Author: Mike Frysinger <vapier@gentoo.org>
-Date: Thu Apr 15 08:49:28 2010 -0400
-
- set +x on t0001-statd-basic-mon-unmon.sh
+ Note that we could handle unmounting entirely in the kernel, but that
+ won't help older kernels that have this issue.
- The test framework tries to exec this script, but it fails because it
- lacks the +x bit.
+ See:
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=189
- Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit bf867b09201abb155b52e81aeb08757b2f7c6937
+commit 17962b82afb68ca8e6b0d3f432d36c6c7c4980ea
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 11:01:14 2010 -0400
+Date: Wed Oct 13 13:01:51 2010 -0400
- libexport.a: replace xlog(L_FATAL) in client_check()
+ mount.nfs: mountproto does not support RDMA
- Clean up: Prevent the process from exiting in client_check(). Report
- bad m_type values, but return 0.
+ Clean up. Our client does not support the MNT protocol on RDMA.
- This removes another site where a mountd or exportfs process can exit
- sideways.
+ nfs_mount_protocol() isn't invoked for RDMA mounts (they are shunted
+ off before nfs_options2pmap() is invoked). But in case it ever is,
+ it should return the expected response.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit a39b43b81a8e7b70310f250c5ffd77816577cd6c
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 10:55:02 2010 -0400
+commit 73c61fa5cd114fa6eae0e095724ed63aa66a4a6b
+Author: NeilBrown <neilb@suse.de>
+Date: Wed Oct 13 12:08:41 2010 -0400
- libexport.a: Refactor wildcard checking in client_check()
+ gcc complained:
- Clean up: refactor wildcard logic out of client_check() to make it
- easier to introduce IPv6 support.
+ client.c: In function 'init_netmask6':
+ client.c:181:1: warning: no return statement in function returning
+ non-void
- Match the style used for client_check_{fqdn,subnetwork,netgroup}.
+ and Suse' build system complained
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+ I: Program returns random data in a function
+ E: nfs-utils no-return-in-nonvoid-function client.c:181
+
+ when I built without --enable-ipv6
+
+ Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
+ Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 346ca35298e45e55a58d0f566c3b32b69102c6de
+commit 7e90281b88c05b01c61152b54a0cf2faec45b09c
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 10:54:01 2010 -0400
+Date: Wed Oct 13 12:02:32 2010 -0400
- libexport.a: Refactor netgroup checking in client_check()
+ mount.nfs: Eliminate compiler warnings in utils/mount/network.c
- Clean up: refactor netgroup logic out of client_check() to make it
- easier to introduce IPv6 support.
+ Clean up.
- + Use preferred style of keeping #ifdef out of the middle of
- function definitions. Squelch compiler warnings for "#ifndef
- HAVE_INNETGR" by using __attribute__((unused)).
+ network.c: In function get_socket:
+ network.c:431: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
- + Use preferred style of not using curly braces around switch cases.
+ network.c: In function probe_bothports:
+ network.c:759: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
+ network.c:762: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
- + Match style used for check_{fqdn,subnetwork}.
+ network.c: In function nfs_probe_statd:
+ network.c:775: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
- + Clarify comment documenting use of h_aliases
+ network.c: In function nfs_call_umount:
+ network.c:904: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
+
+ network.c: In function nfs_ca_sockname:
+ network.c:1106: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
+ network.c:1112: warning: dereferencing type-punned pointer might break
+ strict-aliasing rules
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 3455138100064d0213b124c72453accde2276be5
+commit 57385cf87790c0cbdfddfccdde66bd2c8da45923
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 10:52:33 2010 -0400
+Date: Wed Oct 13 11:59:30 2010 -0400
- libexport.a: Remove unused function client_checkaddr()
+ mount.nfs: Eliminate compiler warning in utils/mount/parse_opt.c
- Clean up.
+ parse_opt.c: In function po_rightmost:
+ parse_opt.c:517: warning: conversion to int from unsigned int may
+ change the sign of the result
+
+ "i" contains the function's result value, so it should be defined as
+ the same type as the function's return type.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit a4e3d5c53195c789ae26697a0b2ecdf05d76a85b
+commit 1ee10ef034cbca86da4df271ac4097a948e7ab59
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 10:51:54 2010 -0400
+Date: Wed Oct 13 11:58:27 2010 -0400
- libexport.a: Factor SUBNETWORK checking out of check_client()
+ mount.nfs: Eliminate compiler warning in utils/mount/nfsumount.c
- Clean up: Factor the MCL_SUBNETWORK case out of check_client() and
- client_checkaddr(). This will make it easier to add IPv6 support
- eventually.
-
- The logic in the new helper function will get a little more tangled
- once IPv6 support is introduced. Each slot in the clp address list
- eventually may contain an address from either address family.
+ Clean up.
- Note that the switch statement in client_checkaddr() is redundant,
- since clp->cl_mtype is loop invariant. This change makes SUBNETWORK
- client checking more computationally efficient, at the cost of a few
- extra lines of code.
+ nfsumount.c:374: warning: ISO C forbids omitting the middle term of
+ a ?: expression
- This commit should not change code behavior in any way.
+ This is also probably harmless, but let's make the code unambiguous.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6abde64e6a605443dfc283ffb2642cb853f8b5b0
+commit e9c97e4f7075e563d7a442ca8298ac56bafba0d5
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Thu Apr 8 10:50:41 2010 -0400
+Date: Wed Oct 13 11:56:58 2010 -0400
- libexport.a: Factor FQDN checking out of check_client()
-
- Clean up: Factor the MCL_FQDN case out of check_client() and
- client_checkaddr(). This will make it easier to add IPv6 support
- eventually.
+ mount.nfs: Eliminate compiler warning in utils/mount/nfsumount.c
- The logic in the new helper function will get a little more tangled
- once IPv6 support is introduced. Each slot in the clp address list
- eventually may contain an address from either address family.
+ Clean up.
- Note that the switch statement in client_checkaddr() is redundant,
- since clp->cl_mtype is loop invariant. This change makes FQDN client
- checking more computationally efficient, at the cost of a few extra
- lines of code.
+ nfsumount.c:265: warning: no previous prototype for nfsumount
- This commit should not change code behavior in any way.
+ It's also a good idea if the compiler can ensure that the prototype
+ in nfsmount.h matches the actual function defined in nfsumount.c.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit e8a54a3d5e32c9de009f84d1ef3f26d2dffbf226
-Author: Steve Dickson <steved@redhat.com>
-Date: Thu Apr 8 10:43:49 2010 -0400
-
- Remove some warnings that were introduced by commit 6ca440c
-
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit 132744e9f8885254bcf213c90009d40adeb716bc
+commit e2b6d9cbaf20df26dd371a715fce3ae158f37126
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Mar 22 10:18:00 2010 -0400
+Date: Wed Oct 13 11:54:49 2010 -0400
- libexport.a: e_fslocdata should be freed with free(3)
+ mount.nfs: Eliminate compiler warnings in utils/mount/mount.c
- Clean up: Since e_fslocdata is allocated with strdup(3), and not
- xstrdup(), it should be freed with free(3), and not xfree().
+ Clean up.
- Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit e3b0046b4b12a6e05c0a7afd59ca5431ded51e96
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Mar 22 10:16:04 2010 -0400
-
- libexport.a: Fix whitespace damage in support/export/export.c
+ mount.c: In function parse_opt:
+ mount.c:354: warning: conversion to size_t from int may change the
+ sign of the result
+ mount.c:354: warning: conversion to int from size_t may change the
+ sign of the result
+ mount.c:359: warning: conversion to size_t from int may change the
+ sign of the result
+ mount.c:359: warning: conversion to int from size_t may change the
+ sign of the result
+ mount.c: In function parse_opts:
+ mount.c:374: warning: conversion to int from size_t may change the
+ sign of the result
+ mount.c:377: warning: conversion to size_t from int may change the
+ sign of the result
- Clean up whitespace damage introduced by commit 4cacc965.
+ Character string lengths are usually size_t anyway. We can easily
+ avoid the implicit type cast here.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 5f722d8855ebcb2d041e182c8c69c8cbee4bf408
+commit 013e8ec9ffb9f28f97e58299719023faf846a029
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Mar 22 10:13:15 2010 -0400
+Date: Wed Oct 13 11:53:44 2010 -0400
- libexport.a: Clean up client_compose() and client_member()
+ mount.nfs: Eliminate compiler warning in utils/mount/mount.c
+
+ Clean up.
+
+ mount.c: At top level:
+ mount.c:324: warning: no previous prototype for ?mount_usage?
- Clean up: Replace outdated comments, and fix some function
- declarations. Use proper type for a couple of automatic variables.
+ mount_usage() has no callers outside of utils/mount/mount.c and no
+ prototype is provided in a header file. Make it static.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit aa4c771fc359e097a3a6c3637f78c7bed7c450e9
+commit 47480475c99335c1203e81662f815b62573c19e8
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Mon Mar 22 10:10:59 2010 -0400
+Date: Wed Oct 13 11:50:57 2010 -0400
- libexport.a: Remove dead code
+ mount.nfs: Eliminate compiler warnings in utils/mount/version.h
- Clean up: I can't find any call sites for client_find() or
- client_match().
+ Clean up.
+
+ In file included from mount.c:50:
+ version.h: In function linux_version_code:
+ version.h:48: warning: conversion to unsigned int from int may
+ change the sign of the result
+ version.h:48: warning: conversion to unsigned int from int may
+ change the sign of the result
+ version.h:48: warning: conversion to unsigned int from int may
+ change the sign of the result
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 0935cebc1e130c6adfd870c88a6493277c84d47f
+commit 00885013dccbe00f5cc4e19223cf18e85a8e616a
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Mar 19 16:14:26 2010 -0400
+Date: Wed Oct 13 11:44:23 2010 -0400
- mount: Mount should retry unreachable hosts
+ mount.nfs: Eliminate compiler warning in utils/mount/mount.c
- Currently if a server is up but not responding (ie, it answers ARP
- requests, but not NFS or RPC requests), mount retries or backgrounds
- itself waiting for the server.
+ Clean up.
- If the server is not responding on the network at all, mount fails
- the mount request immediately.
+ In file included from mount.c:41:
+ mount_config.h:35: warning: no previous prototype for mount_config_opts
- Users might find it more useful if mount retried in both cases.
+ Functions defined in include files are usually declared as "static
+ inline," eliminating the need for a forward declaration.
- Note that this change means attempting to mount using a misspelled
- server name will "hang" for the retry amount. I suppose the error
- message isn't very helpful whether it fails immediately or waits
- a couple of minutes, though I imagine that an unreachable server is a
- much more common occurrence than a misspelling.
+ While I was there, I also fixed the macro that prevents including
+ mount_config.h multiple times, and fixed some white space damage.
- Reported-by: Daniel Goering <g_daniel@gmx.net>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit baa41b2c78e796540c45692ea35214f7090a78cb
+commit ffa577350b03ddd421d455a8cd4cff86e3718264
Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Fri Mar 19 16:03:45 2010 -0400
+Date: Wed Oct 13 11:38:22 2010 -0400
- sm-notify: Send fully-qualified and unqualified mon_names
-
- During any file locking interaction between an NFS client and server,
- the client tells the server what hostname it will use as the mon_name
- argument of the SM_NOTIFY request sent by the client when it reboots.
- This is the "caller_name" argument of an NLMPROC_LOCK request.
-
- The server, however, never tells the client what mon_name argument
- it will use when sending an SM_NOTIFY request. In order to recognize
- the server, clients usually guess what mon_name the server might
- send, by using the server hostname provided by the user on the mount
- command line.
+ mount.nfs: Eliminate compiler warnings
- Frequently, the user provides an unqualified server name on the mount
- command. The server might then call the client back with a fully
- qualified domain name, which might not match in some cases.
-
- Solaris, and perhaps other implementations, attempt to mitigate this
- problem by sending two SM_NOTIFY requests to each peer: one with an
- unqualified mon_name argument, and one with a fully qualified mon_name.
+ Clean up.
- Implement such a scheme for sm-notify.
+ fstab.c: In function ?lock_mtab?:
+ fstab.c:385: warning: declaration of ?errsv? shadows a previous local
+ fstab.c:367: warning: shadowed declaration is here
+ fstab.c:407: warning: declaration of ?errsv? shadows a previous local
+ fstab.c:367: warning: shadowed declaration is here
+ fstab.c:417: warning: declaration of ?tries? shadows a previous local
+ fstab.c:325: warning: shadowed declaration is here
+ fstab.c:422: warning: declaration of ?errsv? shadows a previous local
+ fstab.c:367: warning: shadowed declaration is here
- Since my_name is almost always the fully-qualified hostname associated
- with the local system, just wiping the left-most '.' in the my_name
- argument and sending another SM_NOTIFY is nearly always sufficient.
+ These are probably harmless. Reusing a variable name, however, is a
+ little confusing to follow when reading the code.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 900df0e7c0b9006d72d8459b30dc2cd69ce495a5
-Author: Chuck Lever <chuck.lever@oracle.com>
-Date: Wed Mar 17 06:15:08 2010 -0400
+commit 5fe118b838254023d83424c5010ae73a91ec267d
+Author: Trond Myklebust <Trond.Myklebust@netapp.com>
+Date: Wed Oct 13 11:27:21 2010 -0400
- sm-notify: Use my_name when sending SM_NOTIFY requests
+ export: Ensure that we free struct exportent->e_uuid
+
+ Currently, the exportent->e_uuid is initialised in
+ support/nfs/exports.c:parseopts(), but it is never freed.
- The mon_name argument of an SM_NOTIFY request is a string that
- identifies the rebooting host.
+ Also ensure that exportent->e_uuid is duplicated correctly in
+ dupexportent().
- sm-notify should send the my_name provided by the local lockd at the
- time the remote was monitored, rather than cocking up a mon_name
- argument based on the present return value of gethostname(3). If the
- local system's hostname happened to change after the last reboot, then
- the string returned by gethostname(3) will not be recognized by the
- remote. Thus the remote will never initiate lock recovery for the
- original named host, possibly leaving stale locks.
+ Adjusted to account for the new export_free() helper.
- The existing behavior of using the -v command line option as the
- mon_name argument is preserved, but we now prevent sending an IP
- presentation address, as some non-Linux implementations don't
- recognize addresses as valid mon_names.
+ Also, e_uuid points to memory that is always allocated with strdup(3),
+ not with xstrdup(). Thus it must be freed via free(3) and not via
+ xfree().
+ Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
- Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 70c59e231e7257ac93b68ba4b844f8d10a6af4a8
-Author: J. Bruce Fields <bfields@citi.umich.edu>
-Date: Mon Mar 8 15:02:26 2010 -0500
+commit 656028f9925f5817c5a37565d27159973db84ec3
+Author: Chuck Lever <chuck.lever@oracle.com>
+Date: Wed Oct 13 11:22:07 2010 -0400
- mountd: trivial: name parameters for clarity
+ libnfs.a: Allow multiple RPC listeners to share listener port number
- Part of the reason for the previous bug was confusion between "subpath"
- and "path"; which is the shorter path, and which the longer?
+ Normally, when "-p" is not specified on the mountd command line, the
+ TI-RPC library chooses random port numbers for each listener. If a
+ port number _is_ specified on the command line, all the listeners
+ will get the same port number, so SO_REUSEADDR needs to be set on
+ each socket.
- "child" and "parent" seem less ambiguous.
+ Thus we can't let TI-RPC create the listener sockets for us in this
+ case; we must create them ourselves and then set SO_REUSEADDR (and
+ other socket options) by hand.
- Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
- Signed-off-by: Steve Dickson <steved@redhat.com>
-
-commit a064fde8c2615333227de97d159bb338d4ac640d
-Author: J. Bruce Fields <bfields@citi.umich.edu>
-Date: Mon Mar 8 14:59:01 2010 -0500
-
- mountd: fix path comparison for v4 crossmnt
+ Different versions of the same RPC program have to share the same
+ listener and SVCXPRT, so we have to cache xprts we create, and re-use
+ them when additional requests for registration come from the
+ application.
- This was obviously wrong, since path[strlen(path)] == '\0'
- should always be true.
+ Though it doesn't look like it, this fix was "copied" from the legacy
+ rpc_init() function. It's more complicated for TI-RPC, of course,
+ since a TI-RPC application can set up listeners with a nearly
+ arbitrary number of address families and socket types, not just the
+ two listeners that legacy RPC applications can set up (one for AF_INET
+ UDP and one for AF_INET TCP).
- Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
+ See:
+ https://bugzilla.linux-nfs.org/show_bug.cgi?id=190
+
+ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 6ca440c2661dccb05ae74ffb65817e9c30f05c8a
+commit 1296be71ebae4c0d7da61cc1077d97562d3bc549
Author: Steve Dickson <steved@redhat.com>
-Date: Mon Mar 8 11:22:46 2010 -0500
+Date: Wed Oct 13 10:17:58 2010 -0400
- mountd: fix --manage-gids hang due to int/uint bug
-
- A uid or gid should be represented as unsigned, not signed.
+ nfs-utils: Fixed typo in NFS man page
- The conversion to signed here could cause a hang on access by an unknown
- user to a server running mountd with --manage-gids; such a user is
- likely to be mapped to 232-1, which may be converted to 231-1 when
- represented as an int, resulting in a downcall for uid 231-1, hence the
- original rpc hanging forever waiting for a cache downcall for 232-1.
+ Chuck pointed out there was a grammar typo in addition to the spelling
+ typo. Here is a revised version of the patch.
- Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
+ Signed-off-by: Jim Rees <rees@umich.edu>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 84346b7d7e69c113d6dbf03f2646a47b0e74a6b8
+commit 9afbdbad4436df6f7a5a501c6e4db04c3a5bbb08
Author: Steve Dickson <steved@redhat.com>
-Date: Mon Mar 8 10:24:44 2010 -0500
+Date: Wed Oct 13 10:15:12 2010 -0400
- Use authunix_create() instead of authsys_create() to fix regression.
+ Fix style nits in atomicio.c
- Commit 409b8 introduced a regression when the --disable-tirpc
- configuration flag is set. The authsys_create() interface, which
- was introduced, does not exist in the legacy glibc library.
-
- Since the authsys_create() interface is a redefined of the
- authunix_create() interface, which is defined in glibc, using
- authunix_create() resolves the regression,
-
- Acked-by: Jeff Layton <jlayton@redhat.com>
+ Signed-off-by: Jim Rees <rees@umich.edu>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 409b89cc7106154780400c6b2bdce46bc9d5db4b
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Mon Mar 1 08:07:34 2010 -0500
+commit c117b7a1f29db65d139824ba5bab2a58bf5609e2
+Author: Steve Dickson <steved@redhat.com>
+Date: Wed Oct 13 10:09:53 2010 -0400
- nfs-utils: add and use nfs_authsys_create
-
- The current mount, umount and showmount code uses
- authunix_create_default to get an auth handle. The one provided by glibc
- returned a truncated list of groups when there were more than 16 groups.
- libtirpc however currently does an abort() in this case, which causes
- the program to crash and dump core.
+ nfs-utils: Move common code into support
- nfs-utils just uses these auth handles for the MNT protocol, so the
- group list doesn't make a lot of difference here. Add a new function
- that creates an auth handle with a supplemental gids list that consists
- only of the primary gid. Have nfs-utils use that function anywhere that
- it currently uses authunix_create_default. Also, have the caller
- properly check for a NULL return from that function.
+ There are several source files and headers present in the ./utils/idmapd
+ directory which are also usable in a doimapd daemon. Because of this we
+ move that support into the support directory such that it can be shared by
+ both daemons.
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
+ Signed-off-by: Jim Rees <rees@umich.edu>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 9c8c2cd50d3cf0316c2a1bdf6cb9efc7e1a20be9
-Author: Trond Myklebust <Trond.Myklebust@netapp.com>
-Date: Mon Mar 1 07:37:49 2010 -0500
+commit 8c217b9623c8304608196aeb2f7360abfdf987c8
+Author: Suresh Jayaraman <sjayaraman@suse.de>
+Date: Wed Sep 29 07:14:14 2010 -0400
- Fix a typo in commit 6d5ac3fa (nfsd: Disble NFS 4.1 functionality by
- default).
-
- We did not really intend to make NFSv4.0 support conditional on NFSv4.1
- being enabled.
+ The kernel 2.6.37 has a add new mount option: local_lock.
+ Document the new option in the nfs(5) man page.
+ Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
-commit 639b63394c6dd66e06423bfe810366277955c570
+commit 554df6bc8456c6971c1c597f70d3b9131e4e5e11
Author: Steve Dickson <steved@redhat.com>
-Date: Thu Feb 18 07:35:00 2010 -0500
+Date: Tue Sep 28 08:24:16 2010 -0400
- Release 1.2.2
+ Revert "nfs-iostat.py: don't wait for an extra interval when given a count"
- Signed-off-by: Steve Dickson <steved@redhat.com>
+ This reverts commit 837796686ad8f9178c7b6855ada728a53ae511e3.