All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 000/117] nfsd: eliminate the client_mutex
@ 2014-06-26 19:11 Jeff Layton
  2014-06-26 19:11 ` [PATCH v2 001/117] nfsd: fix file access refcount leak when nfsd4_truncate fails Jeff Layton
                   ` (118 more replies)
  0 siblings, 119 replies; 162+ messages in thread
From: Jeff Layton @ 2014-06-26 19:11 UTC (permalink / raw)
  To: bfields; +Cc: linux-nfs

v2 changes:
- rebased on top of v3.16-rc2

- fixed up checkpatch warnings (I'm really starting to hate that 80 column
  limit warning)

- fleshed out patch descriptions. Most of them should now say they are a
  necessary step toward client_mutex removal when it's not otherwise
  obvious. Also, when things touch outside of fs/nfsd, I added Cc lines
  for the appropriate maintainers.

- reordered patches to put more of the ones that don't affect locking
  near the front of the queue. This may make it easier to merge this
  piecemeal.

- I think I have addressed all of Christoph's review comments -- let me
  know if I missed any. For now, I left the Documentation/ patch intact,
  but we don't need to merge it at all if it's objectionable. I may end
  up transplanting it into comments but I ran short of time so I'll defer
  it for now.

- fix race that can occur between concurrent FREE_STATEID and CLOSE. As
  part of that fix, the cl_lock thrashing (and ensuing races) that could
  occur when a stateowner was released has also been eliminated.

- overhaul of access/deny mode handling. Christoph was correct to be
  suspicious. It didn't properly handle the case where a stateid with a
  deny mode was released or downgraded. As a bonus, the new code should be
  much more efficient when you have a long list of stateids as we no longer
  need to walk the entire list to check for deny mode conflicts. I also
  did some cleanup of the file access handling.

- ensure that dl_recall_lru list entries are dequeued before calling
  revoke_delegation (potential memory corruptor).

- Included Christophs fix for the file access leak when nfsd4_truncate
  fails. I took the liberty of adding a commit log message for it and a
  SoB line. Let me know if that's a problem and we can rework it.

For completeness' sake, I'm just re-posting my entire patch queue for
the v2 series. These are also available in my tree at samba.org:

    http://git.samba.org/?p=jlayton/linux.git;a=shortlog;h=refs/heads/nfsd-devel

I'd still like to see this merged for v3.17, so it would be ideal to
merge this into linux-next soon if possible. Bruce, please let me know
what you think the prospects are.

Original cover letter text follows:

-----------------------[snip]--------------------------

Here it is. The long awaited removal of the client_mutex from knfsd.  As
many of us are aware, one of the major bottlenecks in NFSv4 serving is
the fact that all compounds are processed while holding a single, global
mutex.

This has an obvious detrimental effect on scalability. I've heard
anecdotal reports of 10x slowdowns with v4 serving vs. v3 on the same
machine, primarily due to it.

This patchset eliminates that mutex and (hopefully!) the bottleneck that
it imposes. The basic idea is to add refcounting to most of the objects
that compounds deal with to ensure that they are pinned while in use.
Spinlocks are used to protect things like the hashtables and trees that
track the objects.

Benny started this set quite some time ago, and Trond took up the torch
early this spring. He then handed it to me to clean up the remaining
bits about a month ago.

Benny Halevy (1):
  nfsd4: use cl_lock to synchronize all stateid idr calls

Christoph Hellwig (1):
  nfsd: fix file access refcount leak when nfsd4_truncate fails

Jeff Layton (54):
  nfsd: fix return of nfs4_acl_write_who
  nfsd: add __force to opaque verifier field casts
  nfsd: clean up sparse endianness warnings in nfscache.c
  nfsd: nfsd_splice_read and nfsd_readv should return __be32
  nfsd: add appropriate __force directives to filehandle generation code
  nfsd: properly handle embedded newlines in fault_injection input
  nfsd: wait to initialize work struct just prior to using it
  nfsd: Avoid taking state_lock while holding inode lock in
    nfsd_break_one_deleg
  nfsd: Allow lockowners to hold several stateids
  nfsd: clean up nfs4_release_lockowner
  nfsd: declare v4.1+ openowners confirmed on creation
  nfsd: refactor nfs4_file_get_access and nfs4_file_put_access
  nfsd: remove nfs4_file_put_fd
  nfsd: ensure that nfs4_file_get_access enforces deny modes
  nfsd: cleanup nfs4_check_open
  locks: add file_has_lease to prevent delegation break races
  nfsd: Protect the nfs4_file delegation fields using the fi_lock
  nfsd: Ensure atomicity of stateid destruction and idr tree removal
  nfsd: Cleanup the freeing of stateids
  nfsd: do filp_close in sc_free callback for lock stateids
  nfsd: Add locking to protect the state owner lists
  nfsd: clean up races in lock stateid searching and creation
  nfsd: ensure atomicity in nfsd4_free_stateid and
    nfsd4_validate_stateid
  nfsd: clean up lockowner refcounting when finding them
  nfsd: add an operation for unhashing a stateowner
  nfsd: clean up refcounting for lockowners
  nfsd: make openstateids hold references to their openowners
  nfsd: don't allow CLOSE to proceed until refcount on stateid drops
  lockdep: add lockdep_assert_not_held
  nfsd: add locking to stateowner release
  nfsd: optimize destroy_lockowner cl_lock thrashing
  nfsd: close potential race in nfsd4_free_stateid
  nfsd: reduce cl_lock thrashing in release_openowner
  nfsd: don't thrash the cl_lock while freeing an open stateid
  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: ensure that clp->cl_revoked list is protected by clp->cl_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 file documenting new state object model

Trond Myklebust (61):
  nfsd: Protect addition to the file_hashtbl
  nfsd: nfs4_preprocess_seqid_op should only set *stpp on success
  nfsd: Cleanup nfs4svc_encode_compoundres
  nfsd: Don't get a session reference without a client reference
  nfsd: Allow struct nfsd4_compound_state to cache the nfs4_client
  nfsd: lock owners are not per open stateid
  nfsd: NFSv4 lock-owners are not associated to a specific file
  nfsd: Cleanup - Let nfsd4_lookup_stateid() take a cstate argument
  nfsd: clean up nfsd4_close_open_stateid
  nfsd: Cache the client that was looked up in lookup_clientid()
  nfsd: Convert nfsd4_process_open1() to work with lookup_clientid()
  nfsd: Always use lookup_clientid() in nfsd4_process_open1
  nfsd: Convert nfs4_check_open_reclaim() to work with lookup_clientid()
  nfsd: Move the delegation reference counter into the struct nfs4_stid
  nfsd: Add fine grained protection for the nfs4_file->fi_stateids list
  nfsd: Add a mutex to protect the NFSv4.0 open owner replay cache
  nfsd: Add locking to the nfs4_file->fi_fds[] array
  nfsd: clean up helper __release_lock_stateid
  nfsd: Simplify stateid management
  nfsd: Fix delegation revocation
  nfsd: Add reference counting to the lock and open stateids
  nfsd: Add a struct nfs4_file field to struct nfs4_stid
  nfsd: Replace nfs4_ol_stateid->st_file with the st_stid.sc_file
  nfsd: Ensure stateids remain unique until they are freed
  nfsd: Convert delegation counter to an atomic_long_t type
  nfsd: Slight cleanup of find_stateid()
  nfsd: Add reference counting to lock stateids
  nfsd: nfsd4_locku() must reference the lock stateid
  nfsd: Ensure that nfs4_open_delegation() references the delegation
    stateid
  nfsd: nfsd4_process_open2() must reference the delegation stateid
  nfsd: nfsd4_process_open2() must reference the open stateid
  nfsd: Prepare nfsd4_close() for open stateid referencing
  nfsd: nfsd4_open_confirm() must reference the open stateid
  nfsd: Add reference counting to nfs4_preprocess_confirmed_seqid_op
  nfsd: Migrate the stateid reference into nfs4_preprocess_seqid_op
  nfsd: Migrate the stateid reference into nfs4_lookup_stateid()
  nfsd: Migrate the stateid reference into nfs4_find_stateid_by_type()
  nfsd: Add reference counting to state owners
  nfsd: Keep a reference to the open stateid for the NFSv4.0 replay
    cache
  nfsd: Make lock stateid take a reference to the lockowner
  nfsd: Protect adding/removing open state owners using client_lock
  nfsd: Protect adding/removing lock owners using client_lock
  nfsd: Move the open owner hash table into struct nfs4_client
  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()

 .../filesystems/nfs/nfsd4-state-objects.txt        |  105 +
 fs/locks.c                                         |   26 +
 fs/nfsd/fault_inject.c                             |  138 +-
 fs/nfsd/netns.h                                    |   11 +-
 fs/nfsd/nfs4acl.c                                  |    2 +-
 fs/nfsd/nfs4callback.c                             |   22 +-
 fs/nfsd/nfs4proc.c                                 |   24 +-
 fs/nfsd/nfs4state.c                                | 2818 ++++++++++++++------
 fs/nfsd/nfs4xdr.c                                  |   17 +-
 fs/nfsd/nfscache.c                                 |   13 +-
 fs/nfsd/nfsfh.c                                    |   10 +-
 fs/nfsd/nfsfh.h                                    |   15 +-
 fs/nfsd/state.h                                    |   87 +-
 fs/nfsd/vfs.c                                      |    7 +-
 fs/nfsd/vfs.h                                      |    4 +-
 fs/nfsd/xdr4.h                                     |    8 +-
 include/linux/fs.h                                 |    6 +
 include/linux/lockdep.h                            |    4 +
 18 files changed, 2271 insertions(+), 1046 deletions(-)
 create mode 100644 Documentation/filesystems/nfs/nfsd4-state-objects.txt

-- 
1.9.3


^ permalink raw reply	[flat|nested] 162+ messages in thread

end of thread, other threads:[~2014-07-01 20:24 UTC | newest]

Thread overview: 162+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-26 19:11 [PATCH v2 000/117] nfsd: eliminate the client_mutex Jeff Layton
2014-06-26 19:11 ` [PATCH v2 001/117] nfsd: fix file access refcount leak when nfsd4_truncate fails Jeff Layton
2014-06-26 19:24   ` Jeff Layton
2014-06-28 11:00     ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 002/117] nfsd: fix return of nfs4_acl_write_who Jeff Layton
2014-06-26 19:11 ` [PATCH v2 003/117] nfsd: add __force to opaque verifier field casts Jeff Layton
2014-06-26 19:11 ` [PATCH v2 004/117] nfsd: clean up sparse endianness warnings in nfscache.c Jeff Layton
2014-06-26 19:11 ` [PATCH v2 005/117] nfsd: nfsd_splice_read and nfsd_readv should return __be32 Jeff Layton
2014-06-26 19:11 ` [PATCH v2 006/117] nfsd: add appropriate __force directives to filehandle generation code Jeff Layton
2014-06-26 19:11 ` [PATCH v2 007/117] nfsd: properly handle embedded newlines in fault_injection input Jeff Layton
2014-06-28 11:01   ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 008/117] nfsd: Protect addition to the file_hashtbl Jeff Layton
2014-06-26 19:11 ` [PATCH v2 009/117] nfsd: wait to initialize work struct just prior to using it Jeff Layton
2014-06-28 11:02   ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 010/117] nfsd: Avoid taking state_lock while holding inode lock in nfsd_break_one_deleg Jeff Layton
2014-06-28 11:06   ` Christoph Hellwig
2014-06-28 12:18     ` Jeff Layton
2014-06-26 19:11 ` [PATCH v2 011/117] nfsd: nfs4_preprocess_seqid_op should only set *stpp on success Jeff Layton
2014-06-26 19:11 ` [PATCH v2 012/117] nfsd: Cleanup nfs4svc_encode_compoundres Jeff Layton
2014-06-26 19:11 ` [PATCH v2 013/117] nfsd: Don't get a session reference without a client reference Jeff Layton
2014-06-26 19:11 ` [PATCH v2 014/117] nfsd: Allow struct nfsd4_compound_state to cache the nfs4_client Jeff Layton
2014-06-29 12:05   ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 015/117] nfsd: lock owners are not per open stateid Jeff Layton
2014-06-28 11:07   ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 016/117] nfsd: Allow lockowners to hold several stateids Jeff Layton
2014-06-26 19:11 ` [PATCH v2 017/117] nfsd: NFSv4 lock-owners are not associated to a specific file Jeff Layton
2014-06-26 19:11 ` [PATCH v2 018/117] nfsd: clean up nfs4_release_lockowner Jeff Layton
2014-06-29  6:47   ` Christoph Hellwig
2014-06-29 11:08     ` Jeff Layton
2014-06-30 11:02       ` Jeff Layton
2014-06-30 11:04         ` Christoph Hellwig
2014-06-26 19:11 ` [PATCH v2 019/117] nfsd: declare v4.1+ openowners confirmed on creation Jeff Layton
2014-06-29  6:48   ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 020/117] nfsd: Cleanup - Let nfsd4_lookup_stateid() take a cstate argument Jeff Layton
2014-06-29  6:49   ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 021/117] nfsd: clean up nfsd4_close_open_stateid Jeff Layton
2014-06-29 12:00   ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 022/117] nfsd: Cache the client that was looked up in lookup_clientid() Jeff Layton
2014-06-29 12:14   ` Christoph Hellwig
2014-06-29 14:57     ` Jeff Layton
2014-06-30 10:34       ` Christoph Hellwig
2014-06-30 10:59         ` Jeff Layton
2014-06-30 11:03           ` Christoph Hellwig
2014-06-30 11:23             ` Jeff Layton
2014-06-26 19:12 ` [PATCH v2 023/117] nfsd: Convert nfsd4_process_open1() to work with lookup_clientid() Jeff Layton
2014-06-29 12:16   ` Christoph Hellwig
2014-06-29 15:08     ` Jeff Layton
2014-06-30 10:35       ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 024/117] nfsd: Always use lookup_clientid() in nfsd4_process_open1 Jeff Layton
2014-06-29 12:16   ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 025/117] nfsd: Convert nfs4_check_open_reclaim() to work with lookup_clientid() Jeff Layton
2014-06-29 12:17   ` Christoph Hellwig
2014-06-26 19:12 ` [PATCH v2 026/117] nfsd: Move the delegation reference counter into the struct nfs4_stid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 027/117] nfsd4: use cl_lock to synchronize all stateid idr calls Jeff Layton
2014-06-26 19:12 ` [PATCH v2 028/117] nfsd: Add fine grained protection for the nfs4_file->fi_stateids list Jeff Layton
2014-06-26 19:12 ` [PATCH v2 029/117] nfsd: Add a mutex to protect the NFSv4.0 open owner replay cache Jeff Layton
2014-06-26 19:12 ` [PATCH v2 030/117] nfsd: Add locking to the nfs4_file->fi_fds[] array Jeff Layton
2014-06-26 19:12 ` [PATCH v2 031/117] nfsd: refactor nfs4_file_get_access and nfs4_file_put_access Jeff Layton
2014-06-26 19:12 ` [PATCH v2 032/117] nfsd: remove nfs4_file_put_fd Jeff Layton
2014-06-26 19:12 ` [PATCH v2 033/117] nfsd: ensure that nfs4_file_get_access enforces deny modes Jeff Layton
2014-06-27 19:59   ` Jeff Layton
2014-06-26 19:12 ` [PATCH v2 034/117] nfsd: cleanup nfs4_check_open Jeff Layton
2014-06-26 19:12 ` [PATCH v2 035/117] locks: add file_has_lease to prevent delegation break races Jeff Layton
2014-06-26 19:12 ` [PATCH v2 036/117] nfsd: Protect the nfs4_file delegation fields using the fi_lock Jeff Layton
2014-06-26 19:12 ` [PATCH v2 037/117] nfsd: clean up helper __release_lock_stateid Jeff Layton
2014-06-30 10:40   ` Christoph Hellwig
2014-06-30 10:53     ` Jeff Layton
2014-06-26 19:12 ` [PATCH v2 038/117] nfsd: Simplify stateid management Jeff Layton
2014-06-26 19:12 ` [PATCH v2 039/117] nfsd: Fix delegation revocation Jeff Layton
2014-06-26 19:12 ` [PATCH v2 040/117] nfsd: Add reference counting to the lock and open stateids Jeff Layton
2014-06-26 19:12 ` [PATCH v2 041/117] nfsd: Add a struct nfs4_file field to struct nfs4_stid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 042/117] nfsd: Replace nfs4_ol_stateid->st_file with the st_stid.sc_file Jeff Layton
2014-06-26 19:12 ` [PATCH v2 043/117] nfsd: Ensure stateids remain unique until they are freed Jeff Layton
2014-06-26 19:12 ` [PATCH v2 044/117] nfsd: Ensure atomicity of stateid destruction and idr tree removal Jeff Layton
2014-06-26 19:12 ` [PATCH v2 045/117] nfsd: Cleanup the freeing of stateids Jeff Layton
2014-06-26 19:12 ` [PATCH v2 046/117] nfsd: do filp_close in sc_free callback for lock stateids Jeff Layton
2014-06-26 19:12 ` [PATCH v2 047/117] nfsd: Add locking to protect the state owner lists Jeff Layton
2014-06-26 19:12 ` [PATCH v2 048/117] nfsd: clean up races in lock stateid searching and creation Jeff Layton
2014-06-26 19:12 ` [PATCH v2 049/117] nfsd: Convert delegation counter to an atomic_long_t type Jeff Layton
2014-06-26 19:12 ` [PATCH v2 050/117] nfsd: Slight cleanup of find_stateid() Jeff Layton
2014-06-26 19:12 ` [PATCH v2 051/117] nfsd: ensure atomicity in nfsd4_free_stateid and nfsd4_validate_stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 052/117] nfsd: Add reference counting to lock stateids Jeff Layton
2014-06-26 19:12 ` [PATCH v2 053/117] nfsd: nfsd4_locku() must reference the lock stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 054/117] nfsd: Ensure that nfs4_open_delegation() references the delegation stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 055/117] nfsd: nfsd4_process_open2() must reference " Jeff Layton
2014-06-26 19:12 ` [PATCH v2 056/117] nfsd: nfsd4_process_open2() must reference the open stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 057/117] nfsd: Prepare nfsd4_close() for open stateid referencing Jeff Layton
2014-06-26 19:12 ` [PATCH v2 058/117] nfsd: nfsd4_open_confirm() must reference the open stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 059/117] nfsd: Add reference counting to nfs4_preprocess_confirmed_seqid_op Jeff Layton
2014-06-26 19:12 ` [PATCH v2 060/117] nfsd: Migrate the stateid reference into nfs4_preprocess_seqid_op Jeff Layton
2014-06-26 19:12 ` [PATCH v2 061/117] nfsd: Migrate the stateid reference into nfs4_lookup_stateid() Jeff Layton
2014-06-26 19:12 ` [PATCH v2 062/117] nfsd: Migrate the stateid reference into nfs4_find_stateid_by_type() Jeff Layton
2014-06-26 19:12 ` [PATCH v2 063/117] nfsd: Add reference counting to state owners Jeff Layton
2014-06-26 19:12 ` [PATCH v2 064/117] nfsd: Keep a reference to the open stateid for the NFSv4.0 replay cache Jeff Layton
2014-06-26 19:12 ` [PATCH v2 065/117] nfsd: clean up lockowner refcounting when finding them Jeff Layton
2014-06-26 19:12 ` [PATCH v2 066/117] nfsd: add an operation for unhashing a stateowner Jeff Layton
2014-06-26 19:12 ` [PATCH v2 067/117] nfsd: Make lock stateid take a reference to the lockowner Jeff Layton
2014-06-26 19:12 ` [PATCH v2 068/117] nfsd: clean up refcounting for lockowners Jeff Layton
2014-06-26 19:12 ` [PATCH v2 069/117] nfsd: make openstateids hold references to their openowners Jeff Layton
2014-06-26 19:12 ` [PATCH v2 070/117] nfsd: don't allow CLOSE to proceed until refcount on stateid drops Jeff Layton
2014-06-26 19:12 ` [PATCH v2 071/117] nfsd: Protect adding/removing open state owners using client_lock Jeff Layton
2014-06-26 19:12 ` [PATCH v2 072/117] nfsd: Protect adding/removing lock " Jeff Layton
2014-06-26 19:12 ` [PATCH v2 073/117] nfsd: Move the open owner hash table into struct nfs4_client Jeff Layton
2014-06-26 19:12 ` [PATCH v2 074/117] lockdep: add lockdep_assert_not_held Jeff Layton
2014-06-26 19:12 ` [PATCH v2 075/117] nfsd: add locking to stateowner release Jeff Layton
2014-06-26 19:12 ` [PATCH v2 076/117] nfsd: optimize destroy_lockowner cl_lock thrashing Jeff Layton
2014-06-26 19:12 ` [PATCH v2 077/117] nfsd: close potential race in nfsd4_free_stateid Jeff Layton
2014-06-26 19:12 ` [PATCH v2 078/117] nfsd: reduce cl_lock thrashing in release_openowner Jeff Layton
2014-06-26 19:12 ` [PATCH v2 079/117] nfsd: don't thrash the cl_lock while freeing an open stateid Jeff Layton
2014-06-26 19:13 ` [PATCH v2 080/117] nfsd: Ensure struct nfs4_client is unhashed before we try to destroy it Jeff Layton
2014-06-26 19:13 ` [PATCH v2 081/117] nfsd: Ensure that the laundromat unhashes the client before releasing locks Jeff Layton
2014-06-26 19:13 ` [PATCH v2 082/117] nfsd: Don't require client_lock in free_client Jeff Layton
2014-06-26 19:13 ` [PATCH v2 083/117] nfsd: Move create_client() call outside the lock Jeff Layton
2014-06-26 19:20 ` [PATCH v2 084/117] nfsd: Protect unconfirmed client creation using client_lock Jeff Layton
2014-06-26 19:20 ` [PATCH v2 085/117] nfsd: Protect session creation and client confirm " Jeff Layton
2014-06-26 19:20 ` [PATCH v2 086/117] nfsd: Protect nfsd4_destroy_clientid " Jeff Layton
2014-06-26 19:20 ` [PATCH v2 087/117] nfsd: Ensure lookup_clientid() takes client_lock Jeff Layton
2014-06-26 19:20 ` [PATCH v2 088/117] nfsd: Add lockdep assertions to document the nfs4_client/session locking Jeff Layton
2014-06-26 19:20 ` [PATCH v2 089/117] nfsd: protect the close_lru list and oo_last_closed_stid with client_lock Jeff Layton
2014-06-26 19:20 ` [PATCH v2 090/117] nfsd: ensure that clp->cl_revoked list is protected by clp->cl_lock Jeff Layton
2014-06-26 19:20 ` [PATCH v2 091/117] nfsd: move unhash_client_locked call into mark_client_expired_locked Jeff Layton
2014-06-26 19:21 ` [PATCH v2 092/117] nfsd: don't destroy client if mark_client_expired_locked fails Jeff Layton
2014-06-26 19:21 ` [PATCH v2 093/117] nfsd: don't destroy clients that are busy Jeff Layton
2014-06-26 19:21 ` [PATCH v2 094/117] nfsd: protect clid and verifier generation with client_lock Jeff Layton
2014-06-26 19:21 ` [PATCH v2 095/117] nfsd: abstract out the get and set routines into the fault injection ops Jeff Layton
2014-06-26 19:21 ` [PATCH v2 096/117] nfsd: add a forget_clients "get" routine with proper locking Jeff Layton
2014-06-26 19:21 ` [PATCH v2 097/117] nfsd: add a forget_client set_clnt routine Jeff Layton
2014-06-26 19:21 ` [PATCH v2 098/117] nfsd: add nfsd_inject_forget_clients Jeff Layton
2014-06-26 19:21 ` [PATCH v2 099/117] nfsd: add a list_head arg to nfsd_foreach_client_lock Jeff Layton
2014-06-26 19:21 ` [PATCH v2 100/117] nfsd: add more granular locking to forget_locks fault injector Jeff Layton
2014-06-26 19:21 ` [PATCH v2 101/117] nfsd: add more granular locking to forget_openowners " Jeff Layton
2014-06-26 19:21 ` [PATCH v2 102/117] nfsd: add more granular locking to *_delegations fault injectors Jeff Layton
2014-06-26 19:21 ` [PATCH v2 103/117] nfsd: remove old fault injection infrastructure Jeff Layton
2014-06-26 19:21 ` [PATCH v2 104/117] nfsd: Remove nfs4_lock_state(): nfs4_preprocess_stateid_op() Jeff Layton
2014-06-26 19:21 ` [PATCH v2 105/117] nfsd: Remove nfs4_lock_state(): nfsd4_test_stateid/nfsd4_free_stateid Jeff Layton
2014-06-26 19:21 ` [PATCH v2 106/117] nfsd: Remove nfs4_lock_state(): nfsd4_release_lockowner Jeff Layton
2014-06-26 19:21 ` [PATCH v2 107/117] nfsd: Remove nfs4_lock_state(): nfsd4_lock/locku/lockt() Jeff Layton
2014-06-26 19:21 ` [PATCH v2 108/117] nfsd: Remove nfs4_lock_state(): nfsd4_open_downgrade + nfsd4_close Jeff Layton
2014-06-26 19:21 ` [PATCH v2 109/117] nfsd: Remove nfs4_lock_state(): nfsd4_delegreturn() Jeff Layton
2014-06-26 19:21 ` [PATCH v2 110/117] nfsd: Remove nfs4_lock_state(): nfsd4_open and nfsd4_open_confirm Jeff Layton
2014-06-26 19:21 ` [PATCH v2 111/117] nfsd: Remove nfs4_lock_state(): exchange_id, create/destroy_session() Jeff Layton
2014-06-26 19:21 ` [PATCH v2 112/117] nfsd: Remove nfs4_lock_state(): setclientid, setclientid_confirm, renew Jeff Layton
2014-06-26 19:21 ` [PATCH v2 113/117] nfsd: Remove nfs4_lock_state(): reclaim_complete() Jeff Layton
2014-06-26 19:21 ` [PATCH v2 114/117] nfsd: remove nfs4_lock_state: nfs4_laundromat Jeff Layton
2014-06-26 19:21 ` [PATCH v2 115/117] nfsd: remove nfs4_lock_state: nfs4_state_shutdown_net Jeff Layton
2014-06-26 19:21 ` [PATCH v2 116/117] nfsd: remove the client_mutex and the nfs4_lock/unlock_state wrappers Jeff Layton
2014-06-26 19:21 ` [PATCH v2 117/117] nfsd: add file documenting new state object model Jeff Layton
2014-06-27 16:22 ` [PATCH v2 000/117] nfsd: eliminate the client_mutex J. Bruce Fields
2014-06-27 19:08   ` Jeff Layton
2014-06-30 12:51 ` Christoph Hellwig
2014-06-30 12:59   ` Jeff Layton
2014-06-30 19:32     ` J. Bruce Fields
2014-06-30 19:39       ` Jeff Layton
2014-06-30 20:20       ` Jeff Layton
2014-06-30 20:31         ` Trond Myklebust
2014-06-30 20:36           ` Jeff Layton
2014-07-01 14:10             ` Jeff Layton
2014-07-01 14:21               ` Trond Myklebust
2014-07-01 18:46                 ` Jeff Layton
2014-07-01 20:01                   ` J. Bruce Fields
2014-07-01 20:13                     ` Jeff Layton
2014-07-01 20:24                       ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.