[Sheepdog] [PATCH] sheep: bypass check_request() for cached object
Liu Yuan
namei.unix at gmail.com
Tue May 1 12:40:57 CEST 2012
From: Liu Yuan <tailai.ly at taobao.com>
if we go for a cached object, we don't care if it is busy
or being recovered.
Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
---
sheep/sdnet.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/sheep/sdnet.c b/sheep/sdnet.c
index a28874e..1e001af 100644
--- a/sheep/sdnet.c
+++ b/sheep/sdnet.c
@@ -208,6 +208,15 @@ static int check_epoch(struct request *req)
static int check_request(struct request *req)
{
+ struct sd_obj_req *hdr = (struct sd_obj_req *)&req->rq;
+
+ /*
+ * if we go for a cached object, we don't care if it is busy
+ * or being recovered.
+ */
+ if ((hdr->flags & SD_FLAG_CMD_CACHE) && object_is_cached(hdr->oid))
+ return 0;
+
if (!req->local_oid && !req->local_cow_oid)
return 0;
else {
--
1.7.8.2
More information about the sheepdog
mailing list