aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/callback.h
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 /fs/nfs/callback.h
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 'fs/nfs/callback.h')
-rw-r--r--fs/nfs/callback.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
index 25e8802a51d..b678e3e15bd 100644
--- a/fs/nfs/callback.h
+++ b/fs/nfs/callback.h
@@ -138,6 +138,8 @@ extern __be32 nfs4_callback_recallslot(struct cb_recallslotargs *args,
138 void *dummy, 138 void *dummy,
139 struct cb_process_state *cps); 139 struct cb_process_state *cps);
140 140
141extern void nfs4_check_drain_bc_complete(struct nfs4_session *ses);
142extern void nfs4_cb_take_slot(struct nfs_client *clp);
141#endif /* CONFIG_NFS_V4_1 */ 143#endif /* CONFIG_NFS_V4_1 */
142 144
143extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args, 145extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args,
@@ -145,7 +147,6 @@ extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args,
145 struct cb_process_state *cps); 147 struct cb_process_state *cps);
146extern __be32 nfs4_callback_recall(struct cb_recallargs *args, void *dummy, 148extern __be32 nfs4_callback_recall(struct cb_recallargs *args, void *dummy,
147 struct cb_process_state *cps); 149 struct cb_process_state *cps);
148
149#ifdef CONFIG_NFS_V4 150#ifdef CONFIG_NFS_V4
150extern int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt); 151extern int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt);
151extern void nfs_callback_down(int minorversion); 152extern void nfs_callback_down(int minorversion);