[sheepdog] [PATCH 2/2] sheep: set max cache size when receive SD_OP_SET_CACHE_SIZE

levin li levin108 at gmail.com
Mon Jul 30 06:21:20 CEST 2012


From: levin li <xingke.lwp at taobao.com>


Signed-off-by: levin li <xingke.lwp at taobao.com>
---
 sheep/ops.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/sheep/ops.c b/sheep/ops.c
index 8aa6b34..47000f1 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -494,6 +494,17 @@ static int cluster_notify_vdi_del(const struct sd_req *req, struct sd_rsp *rsp,
 	return objlist_cache_cleanup(vid);
 }
 
+static int local_set_cache_size(const struct sd_req *req, struct sd_rsp *rsp,
+				  void *data)
+{
+	int cache_size = *(int *)data;
+
+	uatomic_set(&sys->cache_size, cache_size);
+	dprintf("Max cache size set to %dM\n", cache_size);
+
+	return SD_RES_SUCCESS;
+}
+
 static int cluster_restore(const struct sd_req *req, struct sd_rsp *rsp,
 			   void *data)
 {
@@ -951,6 +962,12 @@ static struct sd_op_template sd_ops[] = {
 		.process_main = local_kill_node,
 	},
 
+	[SD_OP_SET_CACHE_SIZE] = {
+		.name = "SET_CACHE_SIZE",
+		.type = SD_OP_TYPE_LOCAL,
+		.process_main = local_set_cache_size,
+	},
+
 	/* gateway I/O operations */
 	[SD_OP_CREATE_AND_WRITE_OBJ] = {
 		.name = "CREATE_AND_WRITE_OBJ",
-- 
1.7.1




More information about the sheepdog mailing list