summaryrefslogtreecommitdiffstats
path: root/fs/nfs/internal.h
diff options
context:
space:
mode:
authorAndy Adamson <andros@netapp.com>2009-04-01 09:22:17 -0400
committerBenny Halevy <bhalevy@panasas.com>2009-06-17 10:46:41 -0700
commit13615871cdf8e8263626a817c350c6978a6483fe (patch)
tree267069d5067c55d10c2a7b4e02dc5a03243f9967 /fs/nfs/internal.h
parente2c4ab3ce2ecc527672bd7e29a594c50d3ec0477 (diff)
downloadtalos-op-linux-13615871cdf8e8263626a817c350c6978a6483fe.tar.gz
talos-op-linux-13615871cdf8e8263626a817c350c6978a6483fe.zip
nfs41: nfs41_sequence_free_slot
[from nfs41: separate free slot from sequence done] Don't free the slot until after all rpc_restart_calls have completed. Session reset will require more work. As noted by Trond, since we're using rpc_wake_up_next rather than rpc_wake_up() we must always wake up the next task in the queue either by going through nfs4_free_slot, or just calling rpc_wake_up_next if no slot is to be freed. [nfs41: sequence res use slotid] [nfs41: remove SEQ4_STATUS_USE_TK_STATUS] [got rid of nfs4_sequence_res.sr_session, use nfs_client.cl_session instead] Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> [nfs41: rpc_wake_up_next if sessions slot was not consumed.] Signed-off-by: Benny Halevy <bhalevy@panasas.com> [nfs41: nfs4_sequence_free_slot use nfs_client for data server] Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/internal.h')
-rw-r--r--fs/nfs/internal.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index 8d67c2865dc3..12f4c5e6fd39 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -230,6 +230,20 @@ static inline int nfs4_has_session(const struct nfs_client *clp)
return 0;
}
+#ifdef CONFIG_NFS_V4_1
+extern void nfs41_sequence_free_slot(const struct nfs_client *,
+ struct nfs4_sequence_res *res);
+#endif /* CONFIG_NFS_V4_1 */
+
+static inline void nfs4_sequence_free_slot(const struct nfs_client *clp,
+ struct nfs4_sequence_res *res)
+{
+#ifdef CONFIG_NFS_V4_1
+ if (nfs4_has_session(clp))
+ nfs41_sequence_free_slot(clp, res);
+#endif /* CONFIG_NFS_V4_1 */
+}
+
/*
* Determine the device name as a string
*/
OpenPOWER on IntegriCloud