[sheepdog] [PATCH v9 08/19] sheep: get_request() for deferred response

Hitoshi Mitake mitake.hitoshi at gmail.com
Thu May 22 16:30:26 CEST 2014


With the new function, response message to clients can be deferred
safely without blocking the main thread.

Cc: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
Cc: Alessandro Bolgia <alessandro at extensys.it>
Tested-by: Valerio Pachera <sirio81 at gmail.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
---
 sheep/request.c    | 5 +++++
 sheep/sheep_priv.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/sheep/request.c b/sheep/request.c
index 4aa928e..6972f10 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -709,6 +709,11 @@ main_fn void put_request(struct request *req)
 	}
 }
 
+main_fn void get_request(struct request *req)
+{
+	refcount_inc(&req->refcnt);
+}
+
 static void rx_work(struct work *work)
 {
 	struct client_info *ci = container_of(work, struct client_info,
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index d66ae1e..da0acb2 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -425,6 +425,7 @@ int objlist_cache_insert(uint64_t oid);
 void objlist_cache_remove(uint64_t oid);
 
 void put_request(struct request *req);
+void get_request(struct request *req);
 
 int sheep_bnode_writer(uint64_t oid, void *mem, unsigned int len,
 		       uint64_t offset, uint32_t flags, int copies,
-- 
1.9.1




More information about the sheepdog mailing list