nfsd (and lock) changes for 3.2

From: J. Bruce Fields
Date: Tue Oct 25 2011 - 08:19:27 EST


Changes for nfsd (and also a few file-locking changes) are available in
the git repository at:

git://linux-nfs.org/~bfields/linux.git for-3.2

This is the same tree I've always used--I assume you believe it's mine
without a need for signing anything. Feel free to tell me otherwise.

A voice in my head says "wait wait X Y and Z are ready Any Day Now!",
and I'm silencing that voice by pretending I may send another (much
smaller) pull request in a week. Don't count on it. Anyway:

In this request, among other work:

- A rewrite of large parts of the NFSv4 state management to fix
bugs and make the code more mantainable. One of the goals was
to break up the big state lock--unfortunately I didn't get
there, but it looks close.

- Several 4.1 fixes from Benny Halevy--thanks to Benny for
testing the server at the fall bakeathon.

- Progress on the basic 4.1 todo's. Thanks in particular to Mi
Jinlong for (among other things) implementing the somewhat
tricky DRC limit checking.

The 4.1 code is getting closer--it *might* be possible to
finish basic 4.1 early as 3.3, at which point we could start
on optional features (like pNFS). But that will depend on
people sending patches (and pynfs tests) for the remaining 4.1
todo's.

- Fix for longstanding problems with duplicate directory cookies
from ext3/4, from Bernd Schubert. (One nfsv4-specific patch
only in this pull, I believe the rest is going through the
ext4 tree.)

- From Trond (and Chuck), kernel support for federated NFS.

- Fixes and some cleanup for vfs lease code. I've deferred a
larger change to fix lease semantics for NFSv4 after
discovering those "fixes" aren't actually correct for Samba
(the only other user I know of), and instead I intend to
introduce a new lock type for NFSv4's use.

Plus some other miscellaneous bug fixes--thanks to everyone who reported
a bug or contributed a patch!

--b.

Benny Halevy (4):
nfsd41: use SEQ4_STATUS_BACKCHANNEL_FAULT when cb_sequence is invalid
nfsd4: seq->status_flags may be used unitialized
nfsd4: allow NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL | NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED
nfsd4: typo logical vs bitwise negate for want_mask

Bernd Schubert (1):
nfsd4: Remove check for a 32-bit cookie in nfsd4_readdir()

Boaz Harrosh (1):
nfsd4: fix failure to end nfsd4 grace period

Dan Carpenter (1):
nfsd4: typo logical vs bitwise negate

Eric Dumazet (1):
sunrpc: use better NUMA affinities

J. Bruce Fields (86):
nfsd4: fix seqid_mutating_error
nfsd4: return nfserr_symlink on v4 OPEN of non-regular file
locks: minor lease cleanup
locks: move F_INPROGRESS from fl_type to fl_flags field
locks: fix tracking of inprogress lease breaks
locks: setlease cleanup
nfsd4: clean up S_IS -> NF4 file type mapping
nfsd: open-code special directory-hardlink check
nfsd: clean up nfsd_mode_check()
nfsd4: fix incorrect comment in nfsd4_set_nfs4_acl
nfsd4: it's OK to return nfserr_symlink
nfsd: remove unused defines
Remove include/linux/nfsd/const.h
nfsd4: permit read opens of executable-only files
nfsd: prettify NFSD_MAY_* flag definitions
nfsd4: simplify recovery dir setting
nfsd4: stop using nfserr_resource for transitory errors
nfsd4: replace some macros by functions
nfsd4: name openowner data structures more clearly
nfsd4: cleanup lock/stateowner initialization
nfsd4: remove HAS_SESSION
nfsd4: cleanup and consolidate seqid_mutating_err
nfsd4: simplify lock openmode check
nfsd4: get lock checks out of preprocess_seqid_op
nfsd4: remove redundant is_open_owner check
nfsd: remove include/linux/nfsd/syscall.h
nfsd4: fix off-by-one-error in SEQUENCE reply
nfsd4: remove typoed replay field
nfsd4: simplify distinguishing lock & open stateid's
nfsd4: consolidate lock & open stateid tables
nfsd4: simplify stateid generation code, fix wraparound
nfsd4: make delegation stateid's seqid start at 1
nfsd4: centralize handling of replay owners
nfsd4: cleanup seqid op stateowner usage
nfsd4: extend state lock over seqid replay logic
nfsd4: eliminate impossible open replay case
nfsd4: drop most stateowner refcounting
nfsd4: eliminate unused lt_stateowner
nfsd4: share common seqid checks
nfsd4: simplify check_open logic
nfsd4: move double-confirm test to open_confirm
nfsd4: move CLOSE_STATE special case to caller
nfsd4: split stateowners into open and lockowners
nfsd4: split out some free_generic_stateid code
nfsd4: rearrange to avoid a forward reference
nfsd4: split up find_stateid
nfsd4: split preprocess_seqid, cleanup
nfsd4: pass around typemask instead of flags
nfsd4: rename init_stateid
nfsd4: remove redundant stateid initialization
nfsd4: move some of nfs4_stateid into a separate structure
nfsd4: add common dl_stid field to delegation
nfsd4: share common stid-hashing helper function
nfsd4: hash deleg stateid's like any other
nfsd4: fix test_stateid for delegation stateid's
nfsd4: use deleg changes to cleanup preprocess_stateid_op
nfsd4: better stateid hashing
nfsd4: replace oo_confirmed by flag bit
nfsd4: match close replays on stateid, not open owner id
nfsd4: simplify free_stateid
nfsd4: construct stateid from clientid and counter
nfsd4: hash closed stateid's like any other
nfsd4: fix open downgrade, again
nfsd4: make op_cacheresult another flag
leases: split up generic_setlease into lock/unlock cases
nfsd4: move client * to nfs4_stateid, add init_stid helper
nfsd4: use idr for stateid's
nfsd4: assume test_stateid always has session
nfsd4: look up stateid's per clientid
nfsd4: fix state lock usage in LOCKU
nfsd4: clean up downgrading code
nfsd4: cleanup state.h comments
nfsd4: ignore WANT bits in open downgrade
nfsd4: move access/deny validity checks to xdr code
nfsd4: move name-length checks to xdr
nfsd4: more robust ignoring of WANT bits in OPEN
nfsd4: centralize renew_client() calls
nfsd4: make is_open_owner boolean
nfsd4: simplify process_open1 logic
nfsd4: clean up open owners on OPEN failure
nfsd4: preallocate nfs4_file in process_open1()
nfsd4: do idr preallocation with stateid allocation
nfsd4: preallocate open stateid in process_open1()
nfsd4: warn on open failure after create
nfsd4: remove unneeded CLAIM_DELEGATE_CUR workaround
nfsd4: implement new 4.1 open reclaim types

Mi Jinlong (5):
SUNRPC: Replace svc_addr_u by sockaddr_storage
SUNRPC: compare scopeid for link-local addresses
nfsd41: try to check reply size before operation
nfs: fix bug about IPv6 address scope checking
nfs41: implement DESTROY_CLIENTID operation

Michal Schmidt (1):
sunrpc: add MODULE_ALIAS to match the filesystem name

Trond Myklebust (3):
NFSD: Cleanup for nfsd4_path()
NFSD: Remove the ex_pathname field from struct svc_export
NFSD: Add a cache for fs_locations information

arch/alpha/include/asm/fcntl.h | 2 -
fs/compat.c | 1 -
fs/lockd/host.c | 25 +-
fs/lockd/svc.c | 2 +-
fs/locks.c | 223 ++++--
fs/nfs/callback.c | 4 +-
fs/nfs/client.c | 7 +-
fs/nfs/nfs4_fs.h | 24 -
fs/nfsd/export.c | 16 +-
fs/nfsd/nfs4callback.c | 20 +-
fs/nfsd/nfs4proc.c | 374 +++++++--
fs/nfsd/nfs4recover.c | 53 +-
fs/nfsd/nfs4state.c | 1794 +++++++++++++++++++---------------------
fs/nfsd/nfs4xdr.c | 380 ++++++---
fs/nfsd/nfsctl.c | 1 -
fs/nfsd/nfsd.h | 33 +
fs/nfsd/nfsfh.c | 39 +-
fs/nfsd/state.h | 174 ++--
fs/nfsd/vfs.c | 31 +-
fs/nfsd/vfs.h | 29 +-
fs/nfsd/xdr4.h | 28 +-
include/asm-generic/fcntl.h | 5 -
include/linux/fs.h | 8 +-
include/linux/nfs4.h | 21 +-
include/linux/nfsd/Kbuild | 2 -
include/linux/nfsd/const.h | 55 --
include/linux/nfsd/export.h | 2 +-
include/linux/nfsd/nfsfh.h | 7 +-
include/linux/nfsd/syscall.h | 116 ---
include/linux/sunrpc/clnt.h | 8 +-
include/linux/sunrpc/svc.h | 32 +-
net/sunrpc/rpc_pipe.c | 3 +
net/sunrpc/svc.c | 33 +-
net/sunrpc/svc_xprt.c | 13 +-
net/sunrpc/svcsock.c | 23 +-
35 files changed, 1901 insertions(+), 1687 deletions(-)
delete mode 100644 include/linux/nfsd/const.h
delete mode 100644 include/linux/nfsd/syscall.h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/