On Wed, Jul 30, 2014 at 08:27:01AM -0400, Jeff Layton wrote: > This patchset is the remainder of the client_mutex removal patches, > which should be merged after the stateid and stateowner refcounting > overhaul. The main focus of this part is to ensure that the nfs4_client > refcounting is up to snuff and then to remove the client_mutex. > > There's also a series in here that basically rewrites the fault > injection code. That rewrite has some significant holes in it (note the > WARN_ONs when the client refcount goes too high), but it should keep it > limping along for now. > > FWIW, I think we should probably go ahead and mark the fault injection > code deprecated in the upcoming merge window and then plan to remove > it in 2-3 releases. I basically skipped reading the fault injection patches because I don't care much about them. The other patches look good to me, but I'd like to take a more careful look at a few of them and give anyone else a chance to comment before committing. ---b. > > Jeff Layton (19): > nfsd: Protect session creation and client confirm using client_lock > nfsd: protect the close_lru list and oo_last_closed_stid with > client_lock > nfsd: move unhash_client_locked call into mark_client_expired_locked > nfsd: don't destroy client if mark_client_expired_locked fails > nfsd: don't destroy clients that are busy > nfsd: protect clid and verifier generation with client_lock > nfsd: abstract out the get and set routines into the fault injection > ops > nfsd: add a forget_clients "get" routine with proper locking > nfsd: add a forget_client set_clnt routine > nfsd: add nfsd_inject_forget_clients > nfsd: add a list_head arg to nfsd_foreach_client_lock > nfsd: add more granular locking to forget_locks fault injector > nfsd: add more granular locking to forget_openowners fault injector > nfsd: add more granular locking to *_delegations fault injectors > nfsd: remove old fault injection infrastructure > nfsd: remove nfs4_lock_state: nfs4_laundromat > nfsd: remove nfs4_lock_state: nfs4_state_shutdown_net > nfsd: remove the client_mutex and the nfs4_lock/unlock_state wrappers > nfsd: add some comments to the nfsd4 object definitions > > Trond Myklebust (18): > nfsd: Ensure struct nfs4_client is unhashed before we try to destroy > it > nfsd: Ensure that the laundromat unhashes the client before releasing > locks > nfsd: Don't require client_lock in free_client > nfsd: Move create_client() call outside the lock > nfsd: Protect unconfirmed client creation using client_lock > nfsd: Protect nfsd4_destroy_clientid using client_lock > nfsd: Ensure lookup_clientid() takes client_lock > nfsd: Add lockdep assertions to document the nfs4_client/session > locking > nfsd: Remove nfs4_lock_state(): nfs4_preprocess_stateid_op() > nfsd: Remove nfs4_lock_state(): nfsd4_test_stateid/nfsd4_free_stateid > nfsd: Remove nfs4_lock_state(): nfsd4_release_lockowner > nfsd: Remove nfs4_lock_state(): nfsd4_lock/locku/lockt() > nfsd: Remove nfs4_lock_state(): nfsd4_open_downgrade + nfsd4_close > nfsd: Remove nfs4_lock_state(): nfsd4_delegreturn() > nfsd: Remove nfs4_lock_state(): nfsd4_open and nfsd4_open_confirm > nfsd: Remove nfs4_lock_state(): exchange_id, create/destroy_session() > nfsd: Remove nfs4_lock_state(): setclientid, setclientid_confirm, > renew > nfsd: Remove nfs4_lock_state(): reclaim_complete() > > fs/nfsd/fault_inject.c | 130 +++---- > fs/nfsd/netns.h | 14 +- > fs/nfsd/nfs4proc.c | 3 - > fs/nfsd/nfs4state.c | 922 +++++++++++++++++++++++++++++++++++-------------- > fs/nfsd/state.h | 122 +++++-- > 5 files changed, 836 insertions(+), 355 deletions(-) > > -- > 1.9.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html