nfsd: make client_lock per net
[pandora-kernel.git] / fs / nfsd / netns.h
index 2281f6d..08d5fa1 100644 (file)
@@ -32,6 +32,8 @@
 #define LOCKOWNER_INO_HASH_BITS                8
 #define LOCKOWNER_INO_HASH_SIZE                (1 << LOCKOWNER_INO_HASH_BITS)
 
+#define SESSION_HASH_SIZE      512
+
 struct cld_net;
 
 struct nfsd_net {
@@ -65,6 +67,23 @@ struct nfsd_net {
        struct rb_root unconf_name_tree;
        struct list_head *ownerstr_hashtbl;
        struct list_head *lockowner_ino_hashtbl;
+       struct list_head *sessionid_hashtbl;
+       /*
+        * client_lru holds client queue ordered by nfs4_client.cl_time
+        * for lease renewal.
+        *
+        * close_lru holds (open) stateowner queue ordered by nfs4_stateowner.so_time
+        * for last close replay.
+        *
+        * All of the above fields are protected by the client_mutex.
+        */
+       struct list_head client_lru;
+       struct list_head close_lru;
+
+       struct delayed_work laundromat_work;
+
+       /* client_lock protects the client lru list and session hash table */
+       spinlock_t client_lock;
 };
 
 extern int nfsd_net_id;