+static unsigned int
+cdt_request_cookie_hash(struct cfs_hash *hs, const void *key,
+ const unsigned int bits)
+{
+ return cfs_hash_djb2_hash(key, sizeof(u64), bits);
+}
+
+static void *cdt_request_cookie_object(struct hlist_node *hnode)
+{
+ return hlist_entry(hnode, struct cdt_agent_req, car_cookie_hash);
+}
+
+static void *cdt_request_cookie_key(struct hlist_node *hnode)
+{
+ struct cdt_agent_req *car = cdt_request_cookie_object(hnode);
+
+ return &car->car_hai->hai_cookie;
+}
+
+static int cdt_request_cookie_keycmp(const void *key, struct hlist_node *hnode)
+{
+ const u64 *cookie2 = cdt_request_cookie_key(hnode);
+
+ return *(u64 *)key == *cookie2;
+}
+
+static void
+cdt_request_cookie_get(struct cfs_hash *hs, struct hlist_node *hnode)
+{
+ struct cdt_agent_req *car = cdt_request_cookie_object(hnode);
+
+ mdt_cdt_get_request(car);
+}
+
+static void
+cdt_request_cookie_put(struct cfs_hash *hs, struct hlist_node *hnode)
+{
+ struct cdt_agent_req *car = cdt_request_cookie_object(hnode);
+
+ mdt_cdt_put_request(car);
+}
+
+struct cfs_hash_ops cdt_request_cookie_hash_ops = {
+ .hs_hash = cdt_request_cookie_hash,
+ .hs_key = cdt_request_cookie_key,
+ .hs_keycmp = cdt_request_cookie_keycmp,
+ .hs_object = cdt_request_cookie_object,
+ .hs_get = cdt_request_cookie_get,
+ .hs_put_locked = cdt_request_cookie_put,
+};
+