Signed-off-by: Christoph Hellwig <hch@lst.de>

---
 sheep/object_cache.c |   48 +++++++++++++++++++++---------------------------
 1 file changed, 21 insertions(+), 27 deletions(-)

Index: sheepdog/sheep/object_cache.c
===================================================================
--- sheepdog.orig/sheep/object_cache.c	2012-07-16 10:56:13.816807823 +0200
+++ sheepdog/sheep/object_cache.c	2012-07-16 10:56:17.070141205 +0200
@@ -424,32 +424,6 @@ out:
 	return ret;
 }
 
-static int object_cache_rw(struct object_cache *oc, uint32_t idx,
-			   struct request *req)
-{
-	struct sd_req *hdr = &req->rq;
-	int ret;
-
-	dprintf("%08"PRIx32", len %"PRIu32", off %"PRIu64"\n", idx,
-		hdr->data_length, hdr->obj.offset);
-
-	if (hdr->flags & SD_FLAG_CMD_WRITE) {
-		ret = write_cache_object(oc->vid, idx, req->data,
-					 hdr->data_length, hdr->obj.offset);
-		if (ret != SD_RES_SUCCESS)
-			goto out;
-		update_cache_entry(oc, idx, hdr->data_length, hdr->obj.offset);
-	} else {
-		ret = read_cache_object(oc->vid, idx, req->data,
-					hdr->data_length, hdr->obj.offset);
-		if (ret != SD_RES_SUCCESS)
-			goto out;
-		req->rp.data_length = hdr->data_length;
-	}
-out:
-	return ret;
-}
-
 static int create_cache_object(struct object_cache *oc, uint32_t idx,
 			       void *buffer, size_t buf_size)
 {
@@ -762,12 +736,16 @@ int bypass_object_cache(struct request *
 
 int object_cache_handle_request(struct request *req)
 {
+	struct sd_req *hdr = &req->rq;
 	uint64_t oid = req->rq.obj.oid;
 	uint32_t vid = oid_to_vid(oid);
 	uint32_t idx = object_cache_oid_to_idx(oid);
 	struct object_cache *cache;
 	int ret, create = 0;
 
+	dprintf("%08"PRIx32", len %"PRIu32", off %"PRIu64"\n", idx,
+		hdr->data_length, hdr->obj.offset);
+
 	cache = find_object_cache(vid, 1);
 
 	if (req->rq.opcode == SD_OP_CREATE_AND_WRITE_OBJ)
@@ -778,7 +756,23 @@ int object_cache_handle_request(struct r
 		if (ret != SD_RES_SUCCESS)
 			return ret;
 	}
-	return object_cache_rw(cache, idx, req);
+
+	if (hdr->flags & SD_FLAG_CMD_WRITE) {
+		ret = write_cache_object(cache->vid, idx, req->data,
+					 hdr->data_length, hdr->obj.offset);
+		if (ret != SD_RES_SUCCESS)
+			goto out;
+		update_cache_entry(cache, idx, hdr->data_length,
+				hdr->obj.offset);
+	} else {
+		ret = read_cache_object(cache->vid, idx, req->data,
+					hdr->data_length, hdr->obj.offset);
+		if (ret != SD_RES_SUCCESS)
+			goto out;
+		req->rp.data_length = hdr->data_length;
+	}
+out:
+	return ret;
 }
 
 int object_cache_write(uint64_t oid, char *data, unsigned int datalen,


