aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndy Adamson <andros@netapp.com>2011-01-05 21:04:34 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2011-01-06 14:46:25 -0500
commit42acd021824578fa0eeb6eb58d457c23ec5dc9c0 (patch)
tree7affe8e1108373906eefcea00498df088b6dfccb /include
parentece0de633c4d9106c39ea9f0db1638c42ead2541 (diff)
NFS add session back channel draining
Currently session draining only drains the fore channel. The back channel processing must also be drained. Use the back channel highest_slot_used to indicate that a callback is being processed by the callback thread. Move the session complete to be per channel. When the session is draininig, wait for any current back channel processing to complete and stop all new back channel processing by returning NFS4ERR_DELAY to the back channel client. Drain the back channel, then the fore channel. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfs_fs_sb.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index 1eaa054a2c7d..e93ada0565fc 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -197,6 +197,7 @@ struct nfs4_slot_table {
197 * op for dynamic resizing */ 197 * op for dynamic resizing */
198 int target_max_slots; /* Set by CB_RECALL_SLOT as 198 int target_max_slots; /* Set by CB_RECALL_SLOT as
199 * the new max_slots */ 199 * the new max_slots */
200 struct completion complete;
200}; 201};
201 202
202static inline int slot_idx(struct nfs4_slot_table *tbl, struct nfs4_slot *sp) 203static inline int slot_idx(struct nfs4_slot_table *tbl, struct nfs4_slot *sp)
@@ -213,7 +214,6 @@ struct nfs4_session {
213 unsigned long session_state; 214 unsigned long session_state;
214 u32 hash_alg; 215 u32 hash_alg;
215 u32 ssv_len; 216 u32 ssv_len;
216 struct completion complete;
217 217
218 /* The fore and back channel */ 218 /* The fore and back channel */
219 struct nfs4_channel_attrs fc_attrs; 219 struct nfs4_channel_attrs fc_attrs;