01 Aug, 2012

4 commits

  • Merge Andrew's second set of patches:
    - MM
    - a few random fixes
    - a couple of RTC leftovers

    * emailed patches from Andrew Morton : (120 commits)
    rtc/rtc-88pm80x: remove unneed devm_kfree
    rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails
    mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
    tmpfs: distribute interleave better across nodes
    mm: remove redundant initialization
    mm: warn if pg_data_t isn't initialized with zero
    mips: zero out pg_data_t when it's allocated
    memcg: gix memory accounting scalability in shrink_page_list
    mm/sparse: remove index_init_lock
    mm/sparse: more checks on mem_section number
    mm/sparse: optimize sparse_index_alloc
    memcg: add mem_cgroup_from_css() helper
    memcg: further prevent OOM with too many dirty pages
    memcg: prevent OOM with too many dirty pages
    mm: mmu_notifier: fix freed page still mapped in secondary MMU
    mm: memcg: only check anon swapin page charges for swap cache
    mm: memcg: only check swap cache pages for repeated charging
    mm: memcg: split swapin charge function into private and public part
    mm: memcg: remove needless !mm fixup to init_mm when charging
    mm: memcg: remove unneeded shmem charge type
    ...

    Linus Torvalds
     
  • Pull second wave of NFS client updates from Trond Myklebust:

    - Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into
    separate modules.

    - Fix Oopses in the NFSv4 idmapper

    - Fix a deadlock whereby rpciod tries to allocate a new socket and ends
    up recursing into the NFS code due to memory reclaim.

    - Increase the number of permitted callback connections.

    * tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    nfs: explicitly reject LOCK_MAND flock() requests
    nfs: increase number of permitted callback connections.
    SUNRPC: return negative value in case rpcbind client creation error
    NFS: Convert v4 into a module
    NFS: Convert v3 into a module
    NFS: Convert v2 into a module
    NFS: Keep module parameters in the generic NFS client
    NFS: Split out remaining NFS v4 inode functions
    NFS: Pass super operations and xattr handlers in the nfs_subversion
    NFS: Only initialize the ACL client in the v3 case
    NFS: Create a try_mount rpc op
    NFS: Remove the NFS v4 xdev mount function
    NFS: Add version registering framework
    NFS: Fix a number of bugs in the idmapper
    nfs: skip commit in releasepage if we're freeing memory for fs-related reasons
    sunrpc: clarify comments on rpc_make_runnable
    pnfsblock: bail out partial page IO

    Linus Torvalds
     
  • Implement the new swapfile a_ops for NFS and hook up ->direct_IO. This
    will set the NFS socket to SOCK_MEMALLOC and run socket reconnect under
    PF_MEMALLOC as well as reset SOCK_MEMALLOC before engaging the protocol
    ->connect() method.

    PF_MEMALLOC should allow the allocation of struct socket and related
    objects and the early (re)setting of SOCK_MEMALLOC should allow us to
    receive the packets required for the TCP connection buildup.

    [jlayton@redhat.com: Restore PF_MEMALLOC task flags in all cases]
    [dfeng@redhat.com: Fix handling of multiple swap files]
    [a.p.zijlstra@chello.nl: Original patch]
    Signed-off-by: Mel Gorman
    Acked-by: Rik van Riel
    Cc: Christoph Hellwig
    Cc: David S. Miller
    Cc: Eric B Munson
    Cc: Eric Paris
    Cc: James Morris
    Cc: Mel Gorman
    Cc: Mike Christie
    Cc: Neil Brown
    Cc: Sebastian Andrzej Siewior
    Cc: Trond Myklebust
    Cc: Xiaotian Feng
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Pull nfsd changes from J. Bruce Fields:
    "This has been an unusually quiet cycle--mostly bugfixes and cleanup.
    The one large piece is Stanislav's work to containerize the server's
    grace period--but that in itself is just one more step in a
    not-yet-complete project to allow fully containerized nfs service.

    There are a number of outstanding delegation, container, v4 state, and
    gss patches that aren't quite ready yet; 3.7 may be wilder."

    * 'nfsd-next' of git://linux-nfs.org/~bfields/linux: (35 commits)
    NFSd: make boot_time variable per network namespace
    NFSd: make grace end flag per network namespace
    Lockd: move grace period management from lockd() to per-net functions
    LockD: pass actual network namespace to grace period management functions
    LockD: manage grace list per network namespace
    SUNRPC: service request network namespace helper introduced
    NFSd: make nfsd4_manager allocated per network namespace context.
    LockD: make lockd manager allocated per network namespace
    LockD: manage grace period per network namespace
    Lockd: add more debug to host shutdown functions
    Lockd: host complaining function introduced
    LockD: manage used host count per networks namespace
    LockD: manage garbage collection timeout per networks namespace
    LockD: make garbage collector network namespace aware.
    LockD: mark host per network namespace on garbage collect
    nfsd4: fix missing fault_inject.h include
    locks: move lease-specific code out of locks_delete_lock
    locks: prevent side-effects of locks_release_private before file_lock is initialized
    NFSd: set nfsd_serv to NULL after service destruction
    NFSd: introduce nfsd_destroy() helper
    ...

    Linus Torvalds
     

31 Jul, 2012

5 commits

  • Pull NFS client updates from Trond Myklebust:
    "Features include:
    - More preparatory patches for modularising NFSv2/v3/v4. Split out
    the various NFSv2/v3/v4-specific code into separate files
    - More preparation for the NFSv4 migration code
    - Ensure that OPEN(O_CREATE) observes the pNFS mds threshold
    parameters
    - pNFS fast failover when the data servers are down
    - Various cleanups and debugging patches"

    * tag 'nfs-for-3.6-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (67 commits)
    nfs: fix fl_type tests in NFSv4 code
    NFS: fix pnfs regression with directio writes
    NFS: fix pnfs regression with directio reads
    sunrpc: clnt: Add missing braces
    nfs: fix stub return type warnings
    NFS: exit_nfs_v4() shouldn't be an __exit function
    SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors
    NFS: Split out NFS v4 client functions
    NFS: Split out the NFS v4 filesystem types
    NFS: Create a single nfs_clone_super() function
    NFS: Split out NFS v4 server creating code
    NFS: Initialize the NFS v4 client from init_nfs_v4()
    NFS: Move the v4 getroot code to nfs4getroot.c
    NFS: Split out NFS v4 file operations
    NFS: Initialize v4 sysctls from nfs_init_v4()
    NFS: Create an init_nfs_v4() function
    NFS: Split out NFS v4 inode operations
    NFS: Split out NFS v3 inode operations
    NFS: Split out NFS v2 inode operations
    NFS: Clean up nfs4_proc_setclientid() and friends
    ...

    Linus Torvalds
     
  • Without this patch kernel will panic on LockD start, because lockd_up() checks
    lockd_up_net() result for negative value.
    From my pow it's better to return negative value from rpcbind routines instead
    of replacing all such checks like in lockd_up().

    Signed-off-by: Stanislav Kinsbursky
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org [>= 3.0]

    Stanislav Kinsbursky
     
  • We've had some reports of a deadlock where rpciod ends up with a stack
    trace like this:

    PID: 2507 TASK: ffff88103691ab40 CPU: 14 COMMAND: "rpciod/14"
    #0 [ffff8810343bf2f0] schedule at ffffffff814dabd9
    #1 [ffff8810343bf3b8] nfs_wait_bit_killable at ffffffffa038fc04 [nfs]
    #2 [ffff8810343bf3c8] __wait_on_bit at ffffffff814dbc2f
    #3 [ffff8810343bf418] out_of_line_wait_on_bit at ffffffff814dbcd8
    #4 [ffff8810343bf488] nfs_commit_inode at ffffffffa039e0c1 [nfs]
    #5 [ffff8810343bf4f8] nfs_release_page at ffffffffa038bef6 [nfs]
    #6 [ffff8810343bf528] try_to_release_page at ffffffff8110c670
    #7 [ffff8810343bf538] shrink_page_list.clone.0 at ffffffff81126271
    #8 [ffff8810343bf668] shrink_inactive_list at ffffffff81126638
    #9 [ffff8810343bf818] shrink_zone at ffffffff8112788f
    #10 [ffff8810343bf8c8] do_try_to_free_pages at ffffffff81127b1e
    #11 [ffff8810343bf958] try_to_free_pages at ffffffff8112812f
    #12 [ffff8810343bfa08] __alloc_pages_nodemask at ffffffff8111fdad
    #13 [ffff8810343bfb28] kmem_getpages at ffffffff81159942
    #14 [ffff8810343bfb58] fallback_alloc at ffffffff8115a55a
    #15 [ffff8810343bfbd8] ____cache_alloc_node at ffffffff8115a2d9
    #16 [ffff8810343bfc38] kmem_cache_alloc at ffffffff8115b09b
    #17 [ffff8810343bfc78] sk_prot_alloc at ffffffff81411808
    #18 [ffff8810343bfcb8] sk_alloc at ffffffff8141197c
    #19 [ffff8810343bfce8] inet_create at ffffffff81483ba6
    #20 [ffff8810343bfd38] __sock_create at ffffffff8140b4a7
    #21 [ffff8810343bfd98] xs_create_sock at ffffffffa01f649b [sunrpc]
    #22 [ffff8810343bfdd8] xs_tcp_setup_socket at ffffffffa01f6965 [sunrpc]
    #23 [ffff8810343bfe38] worker_thread at ffffffff810887d0
    #24 [ffff8810343bfee8] kthread at ffffffff8108dd96
    #25 [ffff8810343bff48] kernel_thread at ffffffff8100c1ca

    rpciod is trying to allocate memory for a new socket to talk to the
    server. The VM ends up calling ->releasepage to get more memory, and it
    tries to do a blocking commit. That commit can't succeed however without
    a connected socket, so we deadlock.

    Fix this by setting PF_FSTRANS on the workqueue task prior to doing the
    socket allocation, and having nfs_release_page check for that flag when
    deciding whether to do a commit call. Also, set PF_FSTRANS
    unconditionally in rpc_async_schedule since that function can also do
    allocations sometimes.

    Signed-off-by: Jeff Layton
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org

    Jeff Layton
     
  • rpc_make_runnable is not generally called with the queue lock held, unless
    it's waking up a task that has been sitting on a waitqueue. This is safe
    when the task has not entered the FSM yet, but the comments don't really
    spell this out.

    Signed-off-by: Jeff Layton
    Signed-off-by: Trond Myklebust

    Jeff Layton
     
  • Add a missing set of braces that commit 4e0038b6b24
    ("SUNRPC: Move clnt->cl_server into struct rpc_xprt")
    forgot.

    Signed-off-by: Joe Perches
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org [>= 3.4]

    Joe Perches
     

19 Jul, 2012

1 commit

  • Introduce ipv6_addr_hash() helper doing a XOR on all bits
    of an IPv6 address, with an optimized x86_64 version.

    Use it in flow dissector, as suggested by Andrew McGregor,
    to reduce hash collision probabilities in fq_codel (and other
    users of flow dissector)

    Use it in ip6_tunnel.c and use more bit shuffling, as suggested
    by David Laight, as existing hash was ignoring most of them.

    Use it in sunrpc and use more bit shuffling, using hash_32().

    Use it in net/ipv6/addrconf.c, using hash_32() as well.

    As a cleanup, use it in net/ipv4/tcp_metrics.c

    Signed-off-by: Eric Dumazet
    Reported-by: Andrew McGregor
    Cc: Dave Taht
    Cc: Tom Herbert
    Cc: David Laight
    Cc: Joe Perches
    Signed-off-by: David S. Miller

    Eric Dumazet
     

18 Jul, 2012

1 commit


17 Jul, 2012

1 commit

  • The gss_mech_list_pseudoflavors() function provides a list of
    currently registered GSS pseudoflavors. This list does not include
    any non-GSS flavors that have been registered with the RPC client.
    nfs4_find_root_sec() currently adds these extra flavors by hand.

    Instead, nfs4_find_root_sec() should be looking at the set of flavors
    that have been explicitly registered via rpcauth_register(). And,
    other areas of code will soon need the same kind of list that
    contains all flavors the kernel currently knows about (see below).

    Rather than cloning the open-coded logic in nfs4_find_root_sec() to
    those new places, introduce a generic RPC function that generates a
    full list of registered auth flavors and pseudoflavors.

    A new rpc_authops method is added that lists a flavor's
    pseudoflavors, if it has any. I encountered an interesting module
    loader loop when I tried to get the RPC client to invoke
    gss_mech_list_pseudoflavors() by name.

    This patch is a pre-requisite for server trunking discovery, and a
    pre-requisite for fixing up the in-kernel mount client to do better
    automatic security flavor selection.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

12 Jul, 2012

1 commit

  • Entries that are in a sunrpc cache but are not valid should be reported
    with a leading '#' so they look like a comment.
    Commit d202cce8963d9 (sunrpc: never return expired entries in sunrpc_cache_lookup)
    broke this for expired entries.

    This particularly applies to entries that have been replaced by newer entries.
    sunrpc_cache_update sets the expiry of the replaced entry to '0', but it
    remains in the cache until the next 'cache_clean'.
    The result is that if you

    echo 0 2000000000 1 0 > /proc/net/rpc/auth.unix.gid/channel

    several times, then

    cat /proc/net/rpc/auth.unix.gid/content

    It will display multiple entries for the one uid, which is at least confusing:

    #uid cnt: gids...
    0 1: 0
    0 1: 0
    0 1: 0

    With this patch, expired entries are marked as comments so you get

    #uid cnt: gids...
    0 1: 0
    # 0 1: 0
    # 0 1: 0

    These expired entries will never be seen by cache_check() as they are always
    *after* a non-expired entry with the same key - so the extra check is only
    needed in c_show()

    Signed-off-by: NeilBrown

    --
    It's not a big problem, but it had me confused for a while, so it could
    well confuse others.
    Thanks,
    NeilBrown
    Signed-off-by: J. Bruce Fields

    NeilBrown
     

11 Jul, 2012

1 commit


05 Jul, 2012

1 commit

  • xs_udp_data_ready() is operating on received packets, and tries to
    do a dst_confirm() on the dst attached to the SKB.

    This isn't right, dst confirmation is for output routes, not input
    rights. It's for resetting the timers on the nexthop neighbour entry
    for the route, indicating that we've got good evidence that we've
    successfully reached it.

    Signed-off-by: David S. Miller

    David S. Miller
     

29 Jun, 2012

10 commits


28 Jun, 2012

1 commit

  • dropwatch wrongly diagnose all received UDP packets as drops.

    This patch removes trace_kfree_skb() done in skb_free_datagram_locked().

    Locations calling skb_free_datagram_locked() should do it on their own.

    As a result, drops are accounted on the right function.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

27 Jun, 2012

1 commit


16 Jun, 2012

1 commit

  • Pull NFS client bugfixes from Trond Myklebust:
    "Highlights include:

    - Fix a couple of mount regressions due to the recent cleanups.
    - Fix an Oops in the open recovery code
    - Fix an rpc_pipefs upcall hang that results from some of the net
    namespace work from 3.4.x (stable kernel candidate).
    - Fix a couple of write and o_direct regressions that were found at
    last weeks Bakeathon testing event in Ann Arbor."

    * tag 'nfs-for-3.5-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFS: add an endian notation for sparse
    NFSv4.1: integer overflow in decode_cb_sequence_args()
    rpc_pipefs: allow rpc_purge_list to take a NULL waitq pointer
    NFSv4 do not send an empty SETATTR compound
    NFSv2: EOF incorrectly set on short read
    NFS: Use the NFS_DEFAULT_VERSION for v2 and v3 mounts
    NFS: fix directio refcount bug on commit
    NFSv4: Fix unnecessary delegation returns in nfs4_do_open
    NFSv4.1: Convert another trivial printk into a dprintk
    NFS4: Fix open bug when pnfs module blacklisted
    NFS: Remove incorrect BUG_ON in nfs_found_client
    NFS: Map minor mismatch error to protocol not support error.
    NFS: Fix a commit bug
    NFS4: Set parsed mount data version to 4
    NFSv4.1: Ensure we clear session state flags after a session creation
    NFSv4.1: Convert a trivial printk into a dprintk
    NFSv4: Fix up decode_attr_mdsthreshold
    NFSv4: Fix an Oops in the open recovery code
    NFSv4.1: Fix a request leak on the back channel

    Linus Torvalds
     

12 Jun, 2012

1 commit


01 Jun, 2012

10 commits

  • Pull the rest of the nfsd commits from Bruce Fields:
    "... and then I cherry-picked the remainder of the patches from the
    head of my previous branch"

    This is the rest of the original nfsd branch, rebased without the
    delegation stuff that I thought really needed to be redone.

    I don't like rebasing things like this in general, but in this situation
    this was the lesser of two evils.

    * 'for-3.5' of git://linux-nfs.org/~bfields/linux: (50 commits)
    nfsd4: fix, consolidate client_has_state
    nfsd4: don't remove rebooted client record until confirmation
    nfsd4: remove some dprintk's and a comment
    nfsd4: return "real" sequence id in confirmed case
    nfsd4: fix exchange_id to return confirm flag
    nfsd4: clarify that renewing expired client is a bug
    nfsd4: simpler ordering of setclientid_confirm checks
    nfsd4: setclientid: remove pointless assignment
    nfsd4: fix error return in non-matching-creds case
    nfsd4: fix setclientid_confirm same_cred check
    nfsd4: merge 3 setclientid cases to 2
    nfsd4: pull out common code from setclientid cases
    nfsd4: merge last two setclientid cases
    nfsd4: setclientid/confirm comment cleanup
    nfsd4: setclientid remove unnecessary terms from a logical expression
    nfsd4: move rq_flavor into svc_cred
    nfsd4: stricter cred comparison for setclientid/exchange_id
    nfsd4: move principal name into svc_cred
    nfsd4: allow removing clients not holding state
    nfsd4: rearrange exchange_id logic to simplify
    ...

    Linus Torvalds
     
  • Pull nfsd update from Bruce Fields.

    * 'for-3.5-take-2' of git://linux-nfs.org/~bfields/linux: (23 commits)
    nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek
    SUNRPC: split upcall function to extract reusable parts
    nfsd: allocate id-to-name and name-to-id caches in per-net operations.
    nfsd: make name-to-id cache allocated per network namespace context
    nfsd: make id-to-name cache allocated per network namespace context
    nfsd: pass network context to idmap init/exit functions
    nfsd: allocate export and expkey caches in per-net operations.
    nfsd: make expkey cache allocated per network namespace context
    nfsd: make export cache allocated per network namespace context
    nfsd: pass pointer to export cache down to stack wherever possible.
    nfsd: pass network context to export caches init/shutdown routines
    Lockd: pass network namespace to creation and destruction routines
    NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches
    nfsd: pass pointer to expkey cache down to stack wherever possible.
    nfsd: use hash table from cache detail in nfsd export seq ops
    nfsd: pass svc_export_cache pointer as private data to "exports" seq file ops
    nfsd: use exp_put() for svc_export_cache put
    nfsd: use cache detail pointer from svc_export structure on cache put
    nfsd: add link to owner cache detail to svc_export structure
    nfsd: use passed cache_detail pointer expkey_parse()
    ...

    Linus Torvalds
     
  • Move the rq_flavor into struct svc_cred, and use it in setclientid and
    exchange_id comparisons as well.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • Instead of keeping the principal name associated with a request in a
    structure that's private to auth_gss and using an accessor function,
    move it to svc_cred.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • There's little point in waiting until after we allocate all of the pages
    to see if we're going to overrun the array. In the event that this
    calculation is really off we could end up scribbling over a bunch of
    memory and make it tougher to debug.

    Signed-off-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Jeff Layton
     
  • The idea is to separate service destruction and per-net operations,
    because these are two different things and the mix looks ugly.

    Notes:

    1) For NFS server this patch looks ugly (sorry for that). But these
    place will be rewritten soon during NFSd containerization.

    2) LockD per-net counter increase int lockd_up() was moved prior to
    make_socks() to make lockd_down_net() call safe in case of error.

    Signed-off-by: Stanislav Kinsbursky
    Signed-off-by: J. Bruce Fields

    Stanislav Kinsbursky
     
  • This new routine is responsible for service registration in a specified
    network context.

    The idea is to separate service creation from per-net operations.

    Note also: since registering service with svc_bind() can fail, the
    service will be destroyed and during destruction it will try to
    unregister itself from rpcbind. In this case unregistration has to be
    skipped.

    Signed-off-by: Stanislav Kinsbursky
    Signed-off-by: J. Bruce Fields

    Stanislav Kinsbursky
     
  • The data in Kerberos gss tokens can be rotated. But we were lazy and
    rejected any nonzero rotation value. It wasn't necessary for the
    implementations we were testing against at the time.

    But it appears that Windows does use a nonzero value here.

    So, implement rotation to bring ourselves into compliance with the spec
    and to interoperate with Windows.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • If the call to svc_process_common() fails, then the request
    needs to be freed before we can exit bc_svc_process.

    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org

    Trond Myklebust
     

30 May, 2012

1 commit

  • Pull NFS client updates from Trond Myklebust:
    "New features include:
    - Rewrite the O_DIRECT code so that it can share the same coalescing
    and pNFS functionality as the page cache code.
    - Allow the server to provide hints as to when we should use pNFS,
    and when it is more efficient to read and write through the
    metadata server.
    - NFS cache consistency updates:
    * Use the ctime to emulate a change attribute for NFSv2/v3 so that
    all NFS versions can share the same cache management code.
    * New cache management code will only look at the change attribute
    and size attribute when deciding whether or not our cached data
    is still valid or not.
    * Don't request NFSv4 post-op attributes on writes in cases such as
    O_DIRECT, where we don't care about data cache consistency, or
    when we have a write delegation, and know that our cache is still
    consistent.
    * Don't request NFSv4 post-op attributes on operations such as
    COMMIT, where there are no expected metadata updates.
    * Don't request NFSv4 directory post-op attributes in cases where
    the operations themselves already return change attribute
    updates: i.e. operations such as OPEN, CREATE, REMOVE, LINK and
    RENAME.
    - Speed up 'ls' and friends by using READDIR rather than READDIRPLUS
    if we detect no attempts to lookup filenames.
    - Improve the code sharing between NFSv2/v3 and v4 mounts
    - NFSv4.1 state management efficiency improvements
    - More patches in preparation for NFSv4/v4.1 migration functionality."

    Fix trivial conflict in fs/nfs/nfs4proc.c that was due to the dcache
    qstr name initialization changes (that made the length/hash a 64-bit
    union)

    * tag 'nfs-for-3.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (146 commits)
    NFSv4: Add debugging printks to state manager
    NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO
    NFSv4: update_changeattr does not need to set NFS_INO_REVAL_PAGECACHE
    NFSv4.1: nfs4_reset_session should use nfs4_handle_reclaim_lease_error
    NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION
    NFSv4.1: Handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION in the state manager
    NFSv4.1: Handle errors in nfs4_bind_conn_to_session
    NFSv4.1: nfs4_bind_conn_to_session should drain the session
    NFSv4.1: Don't clobber the seqid if exchange_id returns a confirmed clientid
    NFSv4.1: Add DESTROY_CLIENTID
    NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session
    NFSv4.1: Ensure we use the correct credentials for session create/destroy
    NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations
    NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease
    NFSv4: When purging the lease, we must clear NFS4CLNT_LEASE_CONFIRM
    NFSv4: Clean up the error handling for nfs4_reclaim_lease
    NFSv4.1: Exchange ID must use GFP_NOFS allocation mode
    nfs41: Use BIND_CONN_TO_SESSION for CB_PATH_DOWN*
    nfs4.1: add BIND_CONN_TO_SESSION operation
    NFSv4.1 test the mdsthreshold hint parameters
    ...

    Linus Torvalds