commit 3030aded70e616cdeac4223785754b86a33b587d
Author: Eberhard Kuemmerle <e.kuemmerle@fz-juelich.de>
Date:   Mon Sep 27 13:24:48 2010 -0400

    Added the -p <principal> flag to the svcgssd manpage
    
    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

    svcgssd: Adding a <-p principal> flag
    
    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.
    
    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
    
    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: Steve Dickson <steved@redhat.com>

commit eaa588a137b0b2f38aa9e9c542635a222e51ee48
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Mon Sep 27 10:16:34 2010 -0400

    nfsd: Enable IPv6 support in rpc.nfsd again.
    
    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
    
    Document IPv6 support in rpc.mountd and exportfs, and clarify existing
    language in the man page.
    
    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.
    
    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
    
    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    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

    mountd: Fix up version and usage messages
    
    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Unregister mountd if my_svc_run() returns
    
    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.
    
    Log a more helpful error message in this case.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Support TI-RPC mountd listener
    
    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.
    
    IPv6 can be supported if TI-RPC is available.  In this case,
    /etc/netconfig is searched to determine which transports to advertise.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Make NFS version checks more strict
    
    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: Steve Dickson <steved@redhat.com>

commit 05f93b531d59df6e976d9b40c97b51546524040a
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Mon Sep 27 09:50:11 2010 -0400

    nfs-utils: Fix source code character encoding
    
    Minor clean up.
    
    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
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit 72ae199db4be7bf0092e15adaa8a43ce2434bf9f
Author: Jeff Layton <jlayton@redhat.com>
Date:   Thu Sep 16 14:34:39 2010 -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.
    
    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.
    
    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

    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Ensure cache downcall can handle IPv6 addresses
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Handle IPv6 addresses in kernel auth_unix_ip upcalls
    
    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
    
    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()
    
    To gain IPv6 support in matchhostname(), simply replace the socket
    address comparison helpers with the generic versions that can handle
    IPv4 and IPv6.
    
    host_addrinfo() (called by matchhostname()) returns IPv6 addresses
    only if IPv6 support is enabled.
    
    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()
    
    Replace inet_aton(3) and gethostbyaddr(3) calls in mountlist_list()
    with calls to the new host_foo() DNS helpers.
    
    The new functions will support IPv6 without additional changes, once
    IPv6 is enabled in the generic hostname helpers.
    
    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()
    
    I'm about to replace inet_aton(3)/gethostbyaddr(3) with
    host_pton()/host_canonname() in mountlist_list().
    
    Since host_canonname() returns a string allocated with strdup(3)
    instead of xstrdup(), mountlist_list() must now deal with memory
    exhaustion properly.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mountd: Add mountlist_freeall()
    
    I'm about to add a second bit of logic that needs to free all
    mountlist records, so introduce a helper for freeing them.
    
    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

    mountd: support IPv6 in mountlist_del_all()
    
    Replace IPv4-specific code in the mountlist_del_all() path with code
    that is address family agnostic.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    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

    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.
    
    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.
    
    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

    mountd: add IPv6 support in auth_authenticate()
    
    Make the entire auth_authenticate() code path address-family agnostic.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    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 * .
    
    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.
    
    While we're here...
    
    Introduce some nice documenting comments for the get_fh() functions,
    and...
    
    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    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

    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
    
    and
    
      https://bugzilla.linux-nfs.org/show_bug.cgi?id=187
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    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

    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.
    
    So let's split the autonegotiation piece out of nfs_try_mount().
    
    We can reduce indenting, and use cleaner switch-based logic.  Also,
    adding more comments can only help.
    
    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.
    
    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: Steve Dickson <steved@redhat.com>

commit 64bf8db367fd43e80dd135b460afc157808647fa
Author: Bian Naimeng <biannm@cn.fujitsu.com>
Date:   Thu Sep 16 07:12:47 2010 -0400

    rpc.idmapd: Type of idmap client should be defined by ic_id not ic_clid.
    
    The type of idmap_client is defined by idmap_client.ic_id for nfs,
    so nfsd should have the same style.
    
    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
Author: Steve Dickson <steved@redhat.com>
Date:   Thu Sep 9 10:47:32 2010 -0400

    Cleaned up a warning from commit 44f09b7
    
    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

    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.
    
    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.
    
    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

    mount.nfs: Support an "rdma" mount option
    
    The kernel NFS client's mount option parser recognizes a stand-alone
    "rdma" mount option, similar to the legacy "udp" and "tcp" options.
    
    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.
    
    Until now, no-one has noticed, especially since an "rdma" mount option
    isn't documented in nfs(5).
    
    Support "rdma" in mount.nfs command, and document it in nfs(5).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    mount.nfs: Use nfs_nfs_protocol() for checking for	proto=rdma
    
    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".
    
    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.
    
    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: Steve Dickson <steved@redhat.com>

commit 57f36cd692c56b3b62705b5fafef4c25561a39ff
Author: Guillaume Rousse <Guillaume.Rousse@inria.fr>
Date:   Thu Sep 9 10:33:47 2010 -0400

    Clarification about options supported by different versions
    
    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()
    
    Instead of a single function that can handle both AF_INET and AF_INET6
    addresses, two separate functions might be cleaner.
    
    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.
    
    I've also eliminated the "#if / #endif" instances inside the functions.
    
    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()
    
    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.
    
    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.
    
    To avoid code duplication, I'm "bending" the cardinal rule of not
    using "#ifdef" inside functions.
    
    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
    
    Retire the slash32 logic in inet_netmask() in favor of a more generic
    netmask parser that can support IPv6 addresses.
    
    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.
    
    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    libexport.a: Use host helper to parse address in client_init()
    
    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.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.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

    libexport.a: Prepare to recognize IPv6 addresses in	client_gettype()
    
    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.
    
    IPv6 will be enabled automatically in client_gettype() when host_pton()
    is changed to support IPv6 addresses.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit 26fd34002585e6a5aa09204b0b01d836fa83dcf3
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Tue Aug 24 07:19:34 2010 -0400

    exportfs: Use xlog() for error reporting
    
    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.
    
    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.
    
    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
    
    Commit 8ce130c4 switched in the new statd_canonical_name() function
    that constructs a "unique" name statd can use to uniquely identify a
    monitor record.
    
    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.
    
    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.
    
    We still enforce the requirement that a mon_name that is a DNS name
    must have a forward map to an IP address.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit 1bb84a09ff58d1314826945db2f3f1f63015e263
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Tue Aug 24 07:13:54 2010 -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.
    
    See http://marc.info/?l=linux-nfs&m=128084830214653&w=2 .
    
    Introduced by commit 0509d3428f523776ddd9d6e9fa318587d3ec7d84.
    
    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
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Tue Aug 24 07:06:14 2010 -0400

    bexport: Add a common exit label to check_netgroup()
    
    check_netgroup() is going to be changed to free dynamically
    allocated resources before it returns, so a common
    exit point is needed.
    
    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
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit e2003650c68cf47806fb24f7d88fae5524b70aab
Author: Steve Dickson <steved@redhat.com>
Date:   Mon Jul 19 12:12:52 2010 -0400

    Remove warnings from nfsctl.c
    
    nfsctl.c: In function 'expsetup':
    nfsctl.c:112: warning: signed and unsigned type in conditional expression
    
    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
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

    Removed warnings from configfile.c
    
    configfile.c:195: warning: 'inline' is not at beginning of declaration
    configfile.c:232: warning: 'inline' is not at beginning of declaration
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit bc8fdd5ebcabe57cacd382673ca9e4a79ff7b18e
Author: Steve Dickson <steved@redhat.com>
Date:   Wed Aug 4 10:26:13 2010 -0400

    Removed warnings from svcgssd_proc.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
    
    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

    Removed warnings from network.c
    
    network.c: In function 'nfs_verify_family':
    network.c:1366: warning: unused parameter 'family'
    
    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

    Removed warnings from nfs4mount.c
    
    nfs4mount.c: In function 'fill_ipv4_sockaddr':
    nfs4mount.c:149: warning: comparison between signed and unsigned integer expressions
    
    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
    
    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')
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit 45a73911fff657942ec67317d000badb8e2c5282
Author: Steve Dickson <steved@redhat.com>
Date:   Tue Jul 20 18:22:32 2010 -0400

    Removed warnings from svcgssd.c
    
    svcgssd.c: In function 'sig_hup':
    svcgssd.c:160: warning: unused parameter 'signal'
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

commit b8ba21cedc6aac3b2847217caf55885bb1a74805
Author: Steve Dickson <steved@redhat.com>
Date:   Tue Jul 20 18:13:45 2010 -0400

    Removed warnings from gssd_proc.c
    
    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
    
    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

    Removed warnings from krb5_util.c
    
    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'
    
    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

    Removed warnings from gssd_main_loop.c
    
    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'
    
    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

    Removed warnings from gssd.c
    
    gssd.c: In function 'sig_hup':
    gssd.c:78: warning: unused parameter 'signal'
    
    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
    
    atomicio.c: In function 'atomicio':
    atomicio.c:48: warning: comparison between signed and unsigned integer expressions
    
    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
    
    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
