summaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_fs_sb.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-20 12:49:27 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-06 00:29:47 +0100
commit464ee9f966404786ba4c6be35dc8362ee8e6ba4e (patch)
tree1a095938b9b674a1617050e2cc824837686d7af6 /include/linux/nfs_fs_sb.h
parentf4af6e2abc8efb1695203a2b76876edf80f79960 (diff)
downloadblackbird-op-linux-464ee9f966404786ba4c6be35dc8362ee8e6ba4e.tar.gz
blackbird-op-linux-464ee9f966404786ba4c6be35dc8362ee8e6ba4e.zip
NFSv4.1: Ensure that the client tracks the server target_highest_slotid
Dynamic slot allocation in NFSv4.1 depends on the client being able to track the server's target value for the highest slotid in the slot table. See the reference in Section 2.10.6.1 of RFC5661. To avoid ordering problems in the case where 2 SEQUENCE replies contain conflicting updates to this target value, we also introduce a generation counter, to track whether or not an RPC containing a SEQUENCE operation was launched before or after the last update. Also rename the nfs4_slot_table target_max_slots field to 'target_highest_slotid' to avoid confusion with a slot table size or number of slots. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_fs_sb.h')
-rw-r--r--include/linux/nfs_fs_sb.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index b0412873d29c..57d406997def 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -217,8 +217,9 @@ struct nfs4_slot_table {
u32 max_slots; /* # slots in table */
u32 highest_used_slotid; /* sent to server on each SEQ.
* op for dynamic resizing */
- u32 target_max_slots; /* Set by CB_RECALL_SLOT as
- * the new max_slots */
+ u32 target_highest_slotid; /* Server max_slot target */
+ unsigned long generation; /* Generation counter for
+ target_highest_slotid */
struct completion complete;
};
OpenPOWER on IntegriCloud