[GIT PULL] Please pull NFS client updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Please pull from the signed tag "nfs-for-3.4-1" in the repository at

   git pull git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tag nfs-for-3.4-1

This will update the following files through the appended changesets.

Please note the presence of one (minimal) back-merge that was needed in
order to resolve a conflict with the upstream kernel.

New features include:
- Add NFS client support for containers.
  This should enable most of the necessary functionality, including
  lockd support, and support for rpc.statd, NFSv4 idmapper and
  RPCSEC_GSS upcalls into the correct network namespace from
  which the mount system call was issued.
- NFSv4 idmapper scalability improvements
  Base the idmapper cache on the keyring interface to allow concurrent
  access to idmapper entries. Start the process of migrating users from
  the single-threaded daemon-based approach to the multi-threaded
  request-key based approach.
- NFSv4.1 implementation id.
  Allows the NFSv4.1 client and server to mutually identify each other
  for logging and debugging purposes.
- Support the 'vers=4.1' mount option for mounting NFSv4.1 instead of
  having to use the more counterintuitive 'vers=4,minorversion=1'.
- SUNRPC tracepoints.
  Start the process of adding tracepoints in order to improve debugging
  of the RPC layer.
- pNFS object layout support for autologin.

Important bugfixes include:
- Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to fail
  to wake up all tasks when applied to priority waitqueues.
- Ensure that we handle read delegations correctly, when we try to
  truncate a file.
- A number of fixes for NFSv4 state manager loops (mostly to do with
  delegation recovery).


  Cheers,
    Trond

----
 Documentation/filesystems/nfs/idmapper.txt |   20 +-
 Documentation/filesystems/nfs/pnfs.txt     |   54 ++
 Documentation/kernel-parameters.txt        |   23 +
 fs/lockd/clnt4xdr.c                        |    2 +-
 fs/lockd/clntlock.c                        |    3 +-
 fs/lockd/clntxdr.c                         |    8 +-
 fs/lockd/host.c                            |   42 ++-
 fs/lockd/mon.c                             |   21 +-
 fs/lockd/netns.h                           |   12 +
 fs/lockd/svc.c                             |  117 ++++-
 fs/lockd/svclock.c                         |   59 ++--
 fs/nfs/Kconfig                             |   29 +-
 fs/nfs/blocklayout/blocklayout.c           |  161 +++++--
 fs/nfs/blocklayout/blocklayout.h           |   11 +-
 fs/nfs/blocklayout/blocklayoutdev.c        |   46 +-
 fs/nfs/blocklayout/blocklayoutdm.c         |   33 +-
 fs/nfs/blocklayout/extents.c               |    2 +-
 fs/nfs/cache_lib.c                         |   61 ++-
 fs/nfs/cache_lib.h                         |   10 +-
 fs/nfs/callback.c                          |   19 +-
 fs/nfs/callback.h                          |    3 +-
 fs/nfs/callback_proc.c                     |   99 ++--
 fs/nfs/callback_xdr.c                      |   21 +-
 fs/nfs/client.c                            |  246 ++++++----
 fs/nfs/delegation.c                        |   68 ++--
 fs/nfs/delegation.h                        |    4 +-
 fs/nfs/dir.c                               |   27 +-
 fs/nfs/direct.c                            |    6 -
 fs/nfs/dns_resolve.c                       |  130 ++++-
 fs/nfs/dns_resolve.h                       |   14 +-
 fs/nfs/file.c                              |    2 +
 fs/nfs/fscache.c                           |    2 +-
 fs/nfs/idmap.c                             |  733 +++++++++++++---------------
 fs/nfs/inode.c                             |  119 ++++-
 fs/nfs/internal.h                          |   15 +-
 fs/nfs/mount_clnt.c                        |   16 +-
 fs/nfs/namespace.c                         |    5 +-
 fs/nfs/netns.h                             |   27 +
 fs/nfs/nfs2xdr.c                           |    2 +-
 fs/nfs/nfs3acl.c                           |    2 +-
 fs/nfs/nfs3proc.c                          |   24 +
 fs/nfs/nfs3xdr.c                           |    4 +-
 fs/nfs/nfs4_fs.h                           |   58 ++-
 fs/nfs/nfs4filelayout.c                    |  272 ++++++++---
 fs/nfs/nfs4filelayout.h                    |    7 +-
 fs/nfs/nfs4filelayoutdev.c                 |   90 ++---
 fs/nfs/nfs4namespace.c                     |   10 +-
 fs/nfs/nfs4proc.c                          |  559 +++++++++++++++-------
 fs/nfs/nfs4state.c                         |  355 ++++++++------
 fs/nfs/nfs4xdr.c                           |  697 +++++++++++++--------------
 fs/nfs/nfsroot.c                           |    2 +-
 fs/nfs/objlayout/objio_osd.c               |   54 ++-
 fs/nfs/objlayout/objlayout.c               |  142 ++++++-
 fs/nfs/objlayout/objlayout.h               |    2 +
 fs/nfs/pagelist.c                          |   92 +----
 fs/nfs/pnfs.c                              |   46 +-
 fs/nfs/pnfs.h                              |   98 ++--
 fs/nfs/pnfs_dev.c                          |    4 +-
 fs/nfs/proc.c                              |   24 +
 fs/nfs/read.c                              |   14 +-
 fs/nfs/super.c                             |  167 +++++--
 fs/nfs/sysctl.c                            |    2 -
 fs/nfs/unlink.c                            |   45 +--
 fs/nfs/write.c                             |  213 +++++----
 fs/nfsd/nfs4callback.c                     |    8 +-
 fs/nfsd/nfs4state.c                        |    2 +-
 fs/nfsd/nfsctl.c                           |    6 +-
 fs/nfsd/nfssvc.c                           |    4 +-
 fs/nfsd/stats.c                            |    5 +-
 include/linux/key.h                        |    2 +
 include/linux/lockd/bind.h                 |    1 +
 include/linux/lockd/lockd.h                |    7 +-
 include/linux/lockd/xdr4.h                 |    2 +-
 include/linux/nfs.h                        |    2 +-
 include/linux/nfs4.h                       |    7 +-
 include/linux/nfs_fs.h                     |   46 ++-
 include/linux/nfs_fs_i.h                   |    4 -
 include/linux/nfs_fs_sb.h                  |   23 +-
 include/linux/nfs_idmap.h                  |   22 +-
 include/linux/nfs_iostat.h                 |    2 +-
 include/linux/nfs_page.h                   |   27 +-
 include/linux/nfs_xdr.h                    |   65 ++-
 include/linux/sunrpc/auth.h                |    2 +
 include/linux/sunrpc/bc_xprt.h             |    2 +-
 include/linux/sunrpc/cache.h               |    8 +-
 include/linux/sunrpc/clnt.h                |   40 +-
 include/linux/sunrpc/debug.h               |   26 +-
 include/linux/sunrpc/metrics.h             |    6 +-
 include/linux/sunrpc/rpc_pipe_fs.h         |   46 ++-
 include/linux/sunrpc/sched.h               |   24 +-
 include/linux/sunrpc/stats.h               |   22 +-
 include/linux/sunrpc/svc.h                 |   13 +-
 include/linux/sunrpc/svc_xprt.h            |    3 +-
 include/linux/sunrpc/svcauth.h             |    3 +
 include/linux/sunrpc/svcauth_gss.h         |    2 +
 include/linux/sunrpc/svcsock.h             |    2 +-
 include/linux/sunrpc/xprt.h                |   11 +-
 include/linux/sunrpc/xprtsock.h            |   12 -
 include/trace/events/sunrpc.h              |  177 +++++++
 net/sunrpc/Kconfig                         |   13 +
 net/sunrpc/addr.c                          |   26 +-
 net/sunrpc/auth_gss/auth_gss.c             |  216 ++++++---
 net/sunrpc/auth_gss/gss_krb5_crypto.c      |    7 +-
 net/sunrpc/auth_gss/gss_krb5_mech.c        |    2 +-
 net/sunrpc/auth_gss/gss_krb5_seal.c        |    2 +-
 net/sunrpc/auth_gss/svcauth_gss.c          |  165 +++++--
 net/sunrpc/backchannel_rqst.c              |    1 +
 net/sunrpc/cache.c                         |   44 +-
 net/sunrpc/clnt.c                          |  548 ++++++++++++++++-----
 net/sunrpc/netns.h                         |   14 +
 net/sunrpc/rpc_pipe.c                      |  501 ++++++++++++--------
 net/sunrpc/rpcb_clnt.c                     |  188 ++++----
 net/sunrpc/sched.c                         |   73 +++-
 net/sunrpc/stats.c                         |   35 +-
 net/sunrpc/sunrpc.h                        |    2 +
 net/sunrpc/sunrpc_syms.c                   |   17 +-
 net/sunrpc/svc.c                           |   98 +++--
 net/sunrpc/svc_xprt.c                      |   51 ++-
 net/sunrpc/svcauth_unix.c                  |  126 +++--
 net/sunrpc/svcsock.c                       |    5 +-
 net/sunrpc/sysctl.c                        |    4 +-
 net/sunrpc/xprt.c                          |   80 ++--
 net/sunrpc/xprtrdma/rpc_rdma.c             |    9 +-
 net/sunrpc/xprtrdma/verbs.c                |   17 +-
 net/sunrpc/xprtsock.c                      |   33 +-
 security/keys/key.c                        |   20 +
 security/keys/keyctl.c                     |   18 +-
 127 files changed, 5217 insertions(+), 2987 deletions(-)

Andy Adamson (4):
      SUNRPC: add sending,pending queue and max slot to xprt stats
      NFSv4.1 set highest_used_slotid to NFS4_NO_SLOT
      NFSv4.1 handle DS stateid errors
      NFSv4.1 cleanup DS stateid error handling

Benny Halevy (1):
      pnfs: clean up initiate_file_draining layout lookup

Boaz Harrosh (1):
      pnfs-obj: Uglify objio_segment allocation for the sake of the principle :-(

Bryan Schumaker (14):
      NFS: Pass a stateid to test_stateid() and free_stateid()
      NFS: Call test_stateid() and free_stateid() with correct stateids
      NFS: Fall back on old idmapper if request_key() fails
      NFS: Keep idmapper include files in one place
      NFS: Update idmapper documentation
      Created a function for setting timeouts on keys
      NFS: Store the legacy idmapper result in the keyring
      NFS: Undo changes to idmap.h
      NFS: Only define some function when v4.1 is enabled
      NFS: Check return value from rpc_queue_upcall()
      NFS: Remove nfs4_setup_sequence from generic write code
      NFS: Remove nfs4_setup_sequence from generic read code
      NFS: Remove nfs4_setup_sequence from generic unlink code
      NFS: Remove nfs4_setup_sequence from generic rename code

Chuck Lever (14):
      SUNRPC: Use KERN_DEFAULT for debugging printk's
      nfs: Clean up debugging in nfs_follow_mountpoint()
      NFS: Make nfs_cache_array.size a signed integer
      NFS: Clean up debugging in decode_pathname()
      NFS: Add debugging messages to NFSv4's CLOSE procedure
      SUNRPC: Add API to acquire source address
      NFS: Make clientaddr= optional
      NFS: Add a client-side function to display NFS file handles
      NFS: Simplify arguments of encode_renew()
      NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS
      NFS: Request fh_expire_type attribute in "server caps" operation
      NFS: Reduce debugging noise from encode_compound_hdr
      NFS: Fix nfs4_verifier memory alignment
      SUNRPC: Kill compiler warning when RPC_DEBUG is unset

Dan Carpenter (2):
      SUNRPC: remove an unneeded NULL check in xprt_connect()
      NFS: null dereference in dev_remove()

Fred Isaman (3):
      NFS: remove NFS_PAGE_TAG_LOCKED
      NFS: remove nfs_inode radix tree
      NFS: ncommit count is being double decremented

Jeff Layton (1):
      nfs: remove unneeded NULL pointer check in nfs4_remote_mount

Randy Dunlap (1):
      sunrpc: fix stats.h for CONFIG_PROC_FS not enabled

Sachin Bhamare (1):
      pnfs-obj: autologin: Add support for protocol autologin

Sachin Prabhu (1):
      Try using machine credentials for RENEW calls

Stanislav Kinsbursky (90):
      SUNRPC: remove non-exclusive pipe creation from RPC pipefs
      SUNRPC: create RPC pipefs superblock per network namespace context
      SUNRPC: hold current network namespace while pipefs superblock is active
      SUNRPC: send notification events on pipefs sb creation and destruction
      SUNRPC: pipefs dentry lookup helper introduced
      SUNRPC: put pipefs superblock link on network namespace
      SUNRPC: pipefs per-net operations helper introduced
      SUNRPC: added debug messages to RPC pipefs
      SUNRPC: replace inode lock with pipe lock for RPC PipeFS operations
      SUNRPC: split SUNPRC PipeFS pipe data and inode creation
      SUNRPC: cleanup PipeFS redundant RPC inode usage
      SUNPRC: cleanup RPC PipeFS pipes upcall interface
      SUNRPC: cleanup GSS pipes usage
      SUNRPC: split SUNPRC PipeFS dentry and private pipe data creation
      SUNRPC: handle RPC client pipefs dentries by network namespace aware routines
      SUNRPC: handle GSS AUTH pipes by network namespace aware routines
      SUNRPC: make SUNPRC clients list per network namespace context
      SUNRPC: subscribe RPC clients to pipefs notifications
      SUNRPC: remove RPC client pipefs dentries after unregister
      SUNRPC: remove RPC pipefs mount point manipulations from RPC clients code
      SUNRPC: remove RPC PipeFS mount point reference from RPC client
      SUNRPC: split cache creation and PipeFS registration
      NFS: split cache creation and PipeFS registration
      NFS: handle NFS caches dentries by network namespace aware routines
      NFS: DNS resolver cache per network namespace context introduced
      NFS: DNS resolver PipeFS notifier introduced
      NFS: remove RPC PipeFS mount point references from NFS cache routines
      SUNRPC: fix pipe->ops cleanup on pipe dentry unlink
      NFS: make NFS client allocated per network namespace context
      NFS: pass NFS client owner network namespace to RPC client creation routine
      NFS: create callback transports in parent transport network namespace
      NFS: handle NFS idmap pipe PipeFS dentries by network namespace aware routines
      NFS: idmap PipeFS notifier introduced
      NFS: handle blocklayout pipe PipeFS dentry by network namespace aware routines
      NFS: blocklayout pipe creation per network namespace context introduced
      NFS: blocklayout PipeFS notifier introduced
      NFS: remove RPC PipeFS mount point reference from blocklayout routines
      SUNRPC: kernel PipeFS mount point creation routines removed
      SUNRPC: move rpcbind internals to sunrpc part of network namespace context
      SUNRPC: optimize net_ns dereferencing in rpcbind creation calls
      SUNRPC: optimize net_ns dereferencing in rpcbind registering calls
      SUNRPC: create rpcbind client in passed network namespace context
      SUNRPC: register rpcbind programs in passed network namespase context
      SUNRPC: parametrize local rpcbind clients creation with net ns
      SUNRPC: parametrize rpc_parse_scope_id() by network context
      SUNRPC: parametrize rpc_pton6() by network context
      SUNRPC: parametrize rpc_pton() by network context
      SUNRPC: parametrize rpc_uaddr2sockaddr() by network context
      SUNRPC: use proper network namespace in rpcbind RPCBPROC_GETADDR procedure
      SUNRPC: pass network namespace to service registering routines
      SUNRPC: register service on creation in current network namespace
      SUNRPC: unregister service on creation in current network namespace
      SUNRPC: cache creation and destruction routines introduced
      SUNRPC: create unix gid cache per network namespace
      SUNRPC: create GSS auth cache per network namespace
      SUNRPC: ip map cache per network namespace cleanup
      SUNRPC: generic cache register routines removed
      NFS: parse DNS cache in proper network namespace context
      NFS: decode destination address in proper network namespace context
      SUNRPC: register RPC stats /proc entries in passed network namespace context
      SUNRPC: register service stats /proc entries in passed network namespace context
      NFS: remove unused nfs4_find_client_no_ident function
      SUNRPC: search for service transports in network namespace context
      NFS: make nfs_client_list per net ns
      NFS: make nfs_volume_list per net ns
      NFS: make cb_ident_idr per net ns
      NFS: make nfs_client_lock per net ns
      NFS: pass proper net rpc_pton() in nfs_dns_resolve_name()
      NFS: search for client session id in proper network namespace
      NFS: pass current net to rpc_pton() while parsing mount options
      NFS: pass transport net to rpc_pton() while parse server name
      NFS: build fixed in case of NFS_USE_NEW_IDMAPPER is undefined
      SUNRPC: clear svc pools lists helper introduced
      SUNRPC: clear svc transports lists helper introduced
      SUNRPC: service destruction in network namespace context
      SUNRPC: service shutdown function in network namespace context introduced
      Lockd: create permanent lockd sockets in current network namespace
      Lockd: pernet usage counter introduced
      Lockd: per-net up and down routines introduced
      LockD: make nlm hosts network namespace aware
      LockD: make NSM network namespace aware
      Lockd: shutdown NLM hosts in network namespace context
      NFS: fix nfs4_find_client_sessionid() arguments list
      SUNRPC: init per-net rpcbind spinlock
      SUNRPC: release per-net clients lock before calling PipeFS dentries creation
      NFS: release per-net clients lock before calling PipeFS dentries creation
      SUNRPC: check RPC inode's pipe reference before dereferencing
      SUNRPC: move waitq from RPC pipe to RPC inode
      NFS: replace global bl_mount_reply with per-net one
      NFS: replace global bl_wq with per-net one

Stephen Rothwell (1):
      nfs: non void functions must return a value

Steve Dickson (1):
      SUNRPC: Adding status trace points

Tom Tucker (2):
      xprtrdma: The transport should not bug-check when a dup reply is received
      xprtrdma: Remove assumption that each segment is <= PAGE_SIZE

Trond Myklebust (73):
      NFS: Remove unnecessary includes from linux/nfs_fs_i.h
      NFSv4: Clean up nfs4_get_state_owner
      NFSv4: Replace state_owner->so_owner_id with an ida based allocator
      NFSv4: Replace lock_owner->ld_id with an ida based allocator
      NFSv41: Add a new helper nfs4_init_sequence()
      NFSv4: Move contents of struct rpc_sequence into struct nfs_seqid_counter
      NFS: Move struct nfs_unique_id into struct nfs_seqid_counter
      NFS: Optimise away unnecessary setattrs for open(O_TRUNC);
      NFS: Ensure that mmapped pages remain stable during writeback
      SUNRPC: Fix potential races in xprt_lock_write_next()
      SUNRPC: constify rpc_clnt fields cl_server and cl_protname
      SUNRPC: constify rpc_program->name
      SUNRPC: constify the rpc_program
      SUNRPC: Add trace events to the sunrpc subsystem
      NFSv4: Avoid thundering herd issues with nfs_release_seqid
      NFS: Use kcalloc() when allocating arrays
      SUNRPC: fixup for namespace changes
      NFSv4: Don't decode fs_locations if we didn't ask for them...
      NFSv4: ACCESS validation doesn't require a full attribute refresh
      SUNRPC: Fix up sunrpc trace events
      SUNRPC: Change the default limit to the number of TCP slots
      NFSv4.1: Convert slotid from u8 to u32
      NFSv4.1: Add a module parameter to set the number of session slots
      NFS: Initialise the nfs_net->nfs_client_lock
      NFSv4: Reduce the footprint of the idmapper
      NFSv4: The idmapper now depends on keyring functionality
      NFSv4: Further reduce the footprint of the idmapper
      SUNRPC: Ensure that we can trace waitqueues when !defined(CONFIG_SYSCTL)
      NFS: Ensure that the nfs_client 'net' field is always set
      NFS: Ensure struct nfs_client holds a reference to the net namespace
      NFSv4.1: Don't call nfs4_deviceid_purge_client() unless we're NFSv4.1
      NFSv4.1: Get rid of redundant NFS4CLNT_LAYOUTRECALL tests
      NFSv4.1: Get rid of NFS4CLNT_LAYOUTRECALL
      NFS: Extend the -overs= mount option to allow 4.x minorversions
      NFS: Ensure we display the minor version correctly in /proc/mounts etc.
      NFS: Consolidate the parsing of the '-ov4.x' and '-overs=4.x' mount options
      SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field
      SUNRPC: Move clnt->cl_server into struct rpc_xprt
      NFS: Fix a compile issue when !CONFIG_NFS_V4_1
      NFS: Fix a typo in _nfs_display_fhandle
      NFS: Properly handle the case where the delegation is revoked
      NFSv4.1: Fix matching of the stateids when returning a delegation
      NFSv4: Further clean-ups of delegation stateid validation
      NFSv4: Rename encode_stateid() to encode_open_stateid()
      NFSv4: Add a helper for encoding opaque data
      NFSv4: Add a helper for encoding stateids
      NFSv4: Rename nfs4_copy_stateid()
      NFSv4: Add helpers for basic copying of stateids
      NFSv4: Simplify the struct nfs4_stateid
      NFSv4: Minor clean ups for encode_string()
      NFSv4: Add a helper for encoding NFSv4 sequence ids
      NFSv4: Add a encode op helper
      NFSv4: Cleanup - convert more functions to use encode_op_hdr
      NFSv4: More xdr cleanups
      NFSv4: Add a helper encode_uint64
      NFSv4: Don't free the nfs4_lock_state until after the release_lockowner
      NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE
      NFS: Don't copy read delegation stateids in setattr
      NFSv4: Clean up nfs4_select_rw_stateid()
      NFSv4.0: Re-establish the callback channel on NFS4ERR_CB_PATHDOWN
      NFS: Fix a number of sparse warnings
      SUNRPC: Fix a few sparse warnings
      SUNRPC: Don't use variable length automatic arrays in kernel code
      NFSv4: Rate limit the state manager warning messages
      NFS: Fix a compile error when !defined NFS_DEBUG
      NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code
      NFSv4.1: Fix a few issues in filelayout_commit_pagelist
      SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
      NFSv4: It is not safe to dereference lsp->ls_state in release_lockowner
      NFS: Use cond_resched_lock() to reduce latencies in the commit scans
      SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG
      SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined
      NFS: Fix more NFS debug related build warnings

Vitaliy Gusev (1):
      nfs41: Verify channel's attributes accordingly to RFC v2

Vivek Trivedi (1):
      NFS: fix sb->s_id in nfs debug prints

Weston Andros Adamson (11):
      NFS: printks in fs/nfs/ should start with NFS:
      NFS: start printks w/ NFS: even if __func__ shown
      NFS: Fix comparison between DS address lists
      NFS: add mount options 'v4.0' and 'v4.1'
      NFS: dont allow minorversion= opt when vers != 4
      NFS: include filelayout DS rpc stats in mountstats
      NFSv4: Send implementation id with exchange_id
      NFSv4: fix server_scope memory leak
      NFSv4: parse and display server implementation ids
      NFS: add filehandle crc for debug display
      NFS: add fh_crc to debug output

William Dauchy (1):
      NFSv4: Rate limit the state manager for lock reclaim warning messages



-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com

��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux