NFS: Move cl_state_owners and related fields to the nfs_server struct

NFSv4 migration needs to reassociate state owners from the source to
the destination nfs_server data structures.  To make that easier, move
the cl_state_owners field to the nfs_server struct.  cl_openowner_id
and cl_lockowner_id accompany this move, as they are used in
conjunction with cl_state_owners.

The cl_lock field in the parent nfs_client continues to protect all
three of these fields.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Chuck Lever
2010-12-24 01:32:43 +00:00
committed by Trond Myklebust
parent fca5238ef3
commit 24d292b894
3 changed files with 188 additions and 78 deletions

View File

@@ -47,11 +47,7 @@ struct nfs_client {
u64 cl_clientid; /* constant */
unsigned long cl_state;
struct rb_root cl_openowner_id;
struct rb_root cl_lockowner_id;
struct list_head cl_delegations;
struct rb_root cl_state_owners;
spinlock_t cl_lock;
unsigned long cl_lease_time;
@@ -150,6 +146,11 @@ struct nfs_server {
filesystem */
struct pnfs_layoutdriver_type *pnfs_curr_ld; /* Active layout driver */
struct rpc_wait_queue roc_rpcwaitq;
/* the following fields are protected by nfs_client->cl_lock */
struct rb_root state_owners;
struct rb_root openowner_id;
struct rb_root lockowner_id;
#endif
void (*destroy)(struct nfs_server *);