[GIT PULL] Please pull NFS client changesets for Linux 3.8

From: Myklebust, Trond
Date: Mon Dec 17 2012 - 20:26:08 EST

Hi Linus,

The following changes since commit 0e4a43ed08e2f44aa7b96aa95d0a540d675483e1:

Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes (2012-11-07 13:38:56 +-0100)

are available in the git repository at:

git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-3.8-1

for you to fetch changes up to cd6c5968582a273561464fe6b1e8cc8214be02df:

SUNRPC: continue run over clients list on PipeFS event instead of break (2012-12-17 12:19:16 -0500)


NFS client updates for Linux 3.8

Features include:

- Full audit of BUG+AF8-ON asserts in the NFS, SUNRPC and lockd client code
Remove altogether where possible, and replace with WARN+AF8-ON+AF8-ONCE and
appropriate error returns where not.
- NFSv4.1 client adds session dynamic slot table management. There is
matching server side code that has been submitted to Bruce for
consideration. Together, this code allows the server to dynamically
manage the amount of memory it allocates to the duplicate request
cache for each client. It will constantly resize those caches to
reserve more memory for clients that are hot while shrinking caches
for those that are quiescent.

In addition, there are assorted bugfixes for the generic NFS write code,
fixes to deal with the drop+AF8-nlink() warnings, and yet another fix for
NFSv4 getacl.

Andy Adamson (2):
SUNRPC set gss gc+AF8-expiry to full lifetime
SUNRPC handle EKEYEXPIRED in call+AF8-refreshresult

Bryan Schumaker (2):
NFS: Add sequence+AF8-priviliged+AF8-ops for nfs4+AF8-proc+AF8-sequence()
NFS: Remove +AF8-nfs+AF8-call+AF8-sync+AF8-session

Jeff Layton (3):
nfs: don't extend writes to cover entire page if pagecache is invalid
nfs: don't zero out the rest of the page if we hit the EOF on a DIO READ
nfs: fix page dirtying in NFS DIO read codepath

Jim Rees (1):
NFS: Reduce stack use in encode+AF8-exchange+AF8-id()

NeilBrown (1):
NFS: avoid NULL dereference in nfs+AF8-destroy+AF8-server

Stanislav Kinsbursky (1):
SUNRPC: continue run over clients list on PipeFS event instead of break

Sven Wegener (1):
NFSv4: Check for buffer length in +AF8AXw-nfs4+AF8-get+AF8-acl+AF8-uncached

Trond Myklebust (68):
NFS: Get rid of unnecessary asserts
NFS: Remove asserts from the NFS XDR code
NFSv4: Remove the BUG+AF8-ON() from nfs4+AF8-get+AF8-lease+AF8-time+AF8-prepare()...
NFSv4.1: Remove unused function last+AF8-byte+AF8-offset
NFSv4.1: Remove assertion BUG+AF8-ON()s from the files and generic layout code
NFS: Remove BUG+AF8-ON() calls from the generic writeback code
NFSv4: Get rid of unnecessary BUG+AF8-ON()s
NFS: Remove BUG+AF8-ON()s in the fs/nfs/inode.c
NFS: Remove the BUG+AF8-ON() in the mount code
lockd: Remove unnecessary BUG+AF8-ON()s in the xdr client code
lockd: Remove trivial BUG+AF8-ON()s from the NSM code
lockd: Remove BUG+AF8-ON()s in fs/lockd/host.c
lockd: Remove BUG+AF8-ON()s from fs/lockd/clntproc.c
SUNRPC: Clean up rpc+AF8-bind+AF8-new+AF8-program
SUNRPC: Fix validity issues with rpc+AF8-pipefs sb-+AD4-s+AF8-fs+AF8-info
NFSv4.1: Handle session reset and bind+AF8-conn+AF8-to+AF8-session before lease check
NFSv4.1: Don't confuse CREATE+AF8-SESSION arguments and results
NFSv4.1: Adjust CREATE+AF8-SESSION arguments when mounting a new filesystem
NFSv4.1: We must bump the clientid sequence number after CREATE+AF8-SESSION
NFSv4.1: nfs4+AF8-alloc+AF8-slots doesn't need zeroing
NFSv4.1: clean up nfs4+AF8-recall+AF8-slot to use nfs4+AF8-alloc+AF8-slots
NFSv4.1: Shrink struct nfs4+AF8-sequence+AF8-res by moving sr+AF8-renewal+AF8-time
NFSv4: Fix a compile time warning when +ACM-undef CONFIG+AF8-NFS+AF8-V4+AF8-1
NFSv4.1: Shrink struct nfs4+AF8-sequence+AF8-res by moving the session pointer
NFSv4.1: Label each entry in the session slot tables with its slot number
NFSv4.1: Simplify struct nfs4+AF8-sequence+AF8-args too
NFSv4.1: Simplify slot allocation
NFSv4.1: Clean up nfs4+AF8-free+AF8-slot
NFSv4.1: Ensure that the client tracks the server target+AF8-highest+AF8-slotid
NFSv4.1: Reset the sequence number for slots that have been deallocated
NFSv4.1: Fix nfs4+AF8-callback+AF8-recallslot to work with dynamic slot allocation
NFSv4.1: Don't confuse target+AF8-highest+AF8-slotid and max+AF8-slots in cb+AF8-recall+AF8-slot
NFSv4.1: Allow the server to recall all but one slot
NFSv4.1: Support dynamic resizing of the session slot table
NFSv4.1: Allow SEQUENCE to resize the slot table on the fly
NFSv4.1: Remove the state manager code to resize the slot table
NFSv4.1: CB+AF8-RECALL+AF8-SLOT must schedule a sequence op after updating targets
NFSv4.1: If slot allocation fails due to OOM, retry more quickly
NFSv4.1: Clean up session draining
NFSv4: Move nfs4+AF8-wait+AF8-clnt+AF8-recover and nfs4+AF8-client+AF8-recover+AF8-expired+AF8-lease
NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c
NFS: Remove unused function slot+AF8-idx
NFSv4.1: Move slot table and session struct definitions to nfs4session.h
NFSv4.1: Set the maximum slot table size to 1024 slots
NFSv4.1: Ping server when our session table limits are too high
NFSv4.1: Use nfs41+AF8-setup+AF8-sequence where appropriate
NFSv4.1: Simplify the sequence setup
NFSv4: Simplify the NFSv4/v4.1 synchronous call switch
NFSv4.1: Clean up nfs41+AF8-setup+AF8-sequence
NFSv4.1: Remove the 'FIFO' behaviour for nfs41+AF8-setup+AF8-sequence
NFSv4: Clean up handling of privileged operations
NFSv4.1: Don't mess with task priorities in nfs41+AF8-setup+AF8-sequence
NFSv4: Reorder the XDR structures to put sequence at the top, not bottom
NFSv4.1: Ensure smooth handover of slots from one task to the next waiting
SUNRPC: Don't allow low priority tasks to pre-empt higher priority ones
NFSv4.1: Try to eliminate outliers when updating target+AF8-highest+AF8-slotid
Merge branch 'bugfixes' into nfs-for-next
NFSv4.1: Handle NFS4ERR+AF8-BADSLOT errors correctly
NFSv4.1: Be conservative about the client highest slotid
NFS: Ensure that we always drop inodes that have been marked as stale
NFS: Fix calls to drop+AF8-nlink()
NFS: nfs+AF8-lookup+AF8-revalidate should not trust an inode with i+AF8-nlink +AD0APQ 0
NFSv4.1: Try to deal with NFS4ERR+AF8-SEQ+AF8-MISORDERED.
NFSv4.1: Move the RPC timestamp out of the slot.
NFSv4.1: Deal effectively with interrupted RPC calls.
SUNRPC: Handle ECONNREFUSED in xs+AF8-local+AF8-setup+AF8-socket
SUNRPC: variable 'svsk' is unused in function bc+AF8-send+AF8-request
NFS: Don't use SetPageError in the NFS writeback code

Weston Andros Adamson (25):
SUNRPC: add WARN+AF8-ON+AF8-ONCE for potential deadlock
SUNRPC: remove BUG+AF8-ON in +AF8AXw-rpc+AF8-clnt+AF8-handle+AF8-event
SUNRPC: remove BUG+AF8-ON from rpc+AF8-run+AF8-bc+AF8-task
SUNRPC: remove BUG+AF8-ON from call+AF8-transmit
SUNRPC: remove BUG+AF8-ON from call+AF8-bc+AF8-transmit
SUNRPC: remove BUG+AF8-ON from call+AF8-bc+AF8-transmit
SUNRPC: remove BUG+AF8-ON from rpc+AF8-sleep+AF8-on+ACo
SUNRPC: remove BUG+AF8-ON from xprt+AF8-destroy+AF8-backchannel
SUNRPC: remove BUG+AF8-ON from bc+AF8-send
SUNRPC: remove BUG+AF8-ON calls from cache+AF8-read
SUNRPC: remove BUG+AF8-ON in rpc+AF8-put+AF8-sb+AF8-net
SUNRPC: remove two BUG+AF8-ON asserts
SUNRPC: remove BUG+AF8-ON from svc+AF8-pool+AF8-map+AF8-set+AF8-cpumask
SUNRPC: remove BUG+AF8-ONs from +ACoAXw-reclassify+AF8-socket+ACo
SUNRPC: remove BUG+AF8-ON in svc+AF8-xprt+AF8-received
SUNRPC: remove BUG+AF8-ON in xdr+AF8-shrink+AF8-bufhead
SUNRPC: remove BUG+AF8-ON from bc+AF8-malloc
SUNRPC: remove BUG+AF8-ON from encode+AF8-rpcb+AF8-string
SUNRPC: remove BUG+AF8-ON in svc+AF8-register
SUNRPC: remove BUG+AF8-ON from +AF8AXw-rpc+AF8-sleep+AF8-on+AF8-priority
SUNRPC: remove BUG+AF8-ONs checking RPC+AF8-IS+AF8-QUEUED
SUNRPC: remove BUG+AF8-ON in svc+AF8-delete+AF8-xprt
SUNRPC: remove BUG+AF8-ON in rpc+AF8-release+AF8-task
SUNRPC: remove BUG+AF8-ON from rpc+AF8-call+AF8-sync

Yanchuan Nian (3):
nfs: Fix wrong slab cache in nfs+AF8-commit+AF8-mempool
nfs: Remove duplicate function declaration in internal.h
nfs: Remove unused list nfs4+AF8-clientid+AF8-list

fs/lockd/clnt4xdr.c +AHw 8 -
fs/lockd/clntproc.c +AHw 3 +--
fs/lockd/clntxdr.c +AHw 8 -
fs/lockd/host.c +AHw 15 +--
fs/lockd/mon.c +AHw 3 -
fs/nfs/Makefile +AHw 2 +--
fs/nfs/blocklayout/blocklayout.c +AHw 1 +-
fs/nfs/cache+AF8-lib.c +AHw 1 -
fs/nfs/callback.h +AHw 4 +--
fs/nfs/callback+AF8-proc.c +AHw 17 +--
fs/nfs/callback+AF8-xdr.c +AHw 5 +--
fs/nfs/client.c +AHw 9 +--
fs/nfs/dir.c +AHw 22 +--
fs/nfs/direct.c +AHw 17 +--
fs/nfs/inode.c +AHw 10 +--
fs/nfs/internal.h +AHw 42 +--
fs/nfs/mount+AF8-clnt.c +AHw 7 +--
fs/nfs/nfs2xdr.c +AHw 4 +--
fs/nfs/nfs3proc.c +AHw 6 +--
fs/nfs/nfs3xdr.c +AHw 7 +--
fs/nfs/nfs4+AF8-fs.h +AHw 29 +--
fs/nfs/nfs4client.c +AHw 5 +--
fs/nfs/nfs4file.c +AHw 1 -
fs/nfs/nfs4filelayout.c +AHw 45 +---
fs/nfs/nfs4filelayoutdev.c +AHw 3 +--
fs/nfs/nfs4proc.c +AHw 820 +-+-+-+-+-+-+-+-+-+-+-----------------------------
fs/nfs/nfs4session.c +AHw 552 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
fs/nfs/nfs4session.h +AHw 142 +-+-+-+-+-+-+-
fs/nfs/nfs4state.c +AHw 143 +-+-+-----
fs/nfs/nfs4super.c +AHw 1 +-
fs/nfs/nfs4xdr.c +AHw 52 +---
fs/nfs/objlayout/objlayout.c +AHw 11 -
fs/nfs/pnfs.c +AHw 17 +--
fs/nfs/proc.c +AHw 43 --
fs/nfs/super.c +AHw 2 +-
fs/nfs/write.c +AHw 31 +--
include/linux/nfs+AF8-fs+AF8-sb.h +AHw 47 ---
include/linux/nfs+AF8-xdr.h +AHw 155 +-+-+-+-----
include/linux/sunrpc/sched.h +AHw 1 -
net/sunrpc/auth+AF8-gss/auth+AF8-gss.c +AHw 17 +--
net/sunrpc/backchannel+AF8-rqst.c +AHw 9 +--
net/sunrpc/bc+AF8-svc.c +AHw 2 +--
net/sunrpc/cache.c +AHw 4 +--
net/sunrpc/clnt.c +AHw 48 +-+--
net/sunrpc/rpc+AF8-pipe.c +AHw 9 +--
net/sunrpc/rpcb+AF8-clnt.c +AHw 5 +--
net/sunrpc/sched.c +AHw 71 +-+---
net/sunrpc/svc.c +AHw 12 +--
net/sunrpc/svc+AF8-xprt.c +AHw 11 +--
net/sunrpc/svcsock.c +AHw 6 +--
net/sunrpc/xdr.c +AHw 5 +--
net/sunrpc/xprtsock.c +AHw 19 +--
52 files changed, 1335 insertions(+-), 1174 deletions(-)
create mode 100644 fs/nfs/nfs4session.c
create mode 100644 fs/nfs/nfs4session.h

Trond Myklebust
Linux NFS client maintainer


Attachment: signature.asc
Description: This is a digitally signed message part