[sheepdog] [PATCH 3/3] sheep, dog: use suitable name for prevent/allow cow operations

Hitoshi Mitake mitake.hitoshi at lab.ntt.co.jp
Wed Jun 11 07:27:23 CEST 2014


Current request names SD_OP_PREVENT_COW and SD_OP_ALLOW_COW aren't
suitable, because they prevent inode update, not COW. This patch
renames them and change related variable names.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
---
 dog/vdi.c                |    8 ++++----
 include/internal_proto.h |    4 ++--
 sheep/group.c            |    4 ++--
 sheep/ops.c              |   44 ++++++++++++++++++++++----------------------
 sheep/request.c          |   33 +++++++++++++++++----------------
 sheep/sheep_priv.h       |   12 ++++++------
 6 files changed, 53 insertions(+), 52 deletions(-)

diff --git a/dog/vdi.c b/dog/vdi.c
index 6c5d5d6..49a2139 100644
--- a/dog/vdi.c
+++ b/dog/vdi.c
@@ -514,10 +514,10 @@ static int vdi_snapshot(int argc, char **argv)
 		return EXIT_FAILURE;
 	}
 
-	sd_init_req(&hdr, SD_OP_PREVENT_COW);
+	sd_init_req(&hdr, SD_OP_PREVENT_INODE_UPDATE);
 	ret = dog_exec_req(&sd_nid, &hdr, NULL);
 	if (ret < 0) {
-		sd_err("preventing COW failed");
+		sd_err("preventing inode update failed");
 		return EXIT_FAILURE;
 	}
 
@@ -542,10 +542,10 @@ static int vdi_snapshot(int argc, char **argv)
 			       " VDI ID of newly created snapshot: %x\n", new_vid, vid);
 	}
 
-	sd_init_req(&hdr, SD_OP_ALLOW_COW);
+	sd_init_req(&hdr, SD_OP_ALLOW_INODE_UPDATE);
 	ret = dog_exec_req(&sd_nid, &hdr, NULL);
 	if (ret < 0) {
-		sd_err("allowing COW failed");
+		sd_err("allowing inode update failed");
 		return EXIT_FAILURE;
 	}
 
diff --git a/include/internal_proto.h b/include/internal_proto.h
index 23967ba..7ec2872 100644
--- a/include/internal_proto.h
+++ b/include/internal_proto.h
@@ -104,8 +104,8 @@
 #define SD_OP_ALTER_VDI_COPY	0xC0
 #define SD_OP_DECREF_OBJ     0xC1
 #define SD_OP_DECREF_PEER    0xC2
-#define SD_OP_PREVENT_COW    0xC3
-#define SD_OP_ALLOW_COW      0xC4
+#define SD_OP_PREVENT_INODE_UPDATE    0xC3
+#define SD_OP_ALLOW_INODE_UPDATE      0xC4
 
 /* internal flags for hdr.flags, must be above 0x80 */
 #define SD_FLAG_CMD_RECOVERY 0x0080
diff --git a/sheep/group.c b/sheep/group.c
index c5b322c..adfd798 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -1098,8 +1098,8 @@ int create_cluster(int port, int64_t zone, int nr_vnodes,
 	if (ret != 0)
 		return -1;
 
-	INIT_LIST_HEAD(&sys->prevented_cow_request_queue);
-	INIT_LIST_HEAD(&sys->pending_prevent_cow_request_queue);
+	INIT_LIST_HEAD(&sys->prevented_inode_update_request_queue);
+	INIT_LIST_HEAD(&sys->pending_prevent_inode_update_request_queue);
 
 	return 0;
 }
diff --git a/sheep/ops.c b/sheep/ops.c
index 3bf4838..c48c2aa 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -1198,40 +1198,40 @@ out:
 	return ret;
 }
 
-static int local_prevent_cow(const struct sd_req *req, struct sd_rsp *rsp,
-			     void *data)
+static int local_prevent_inode_update(const struct sd_req *req,
+				      struct sd_rsp *rsp, void *data)
 {
 	/* FIXME: change type of process_main() */
 	struct request *rq = container_of(req, struct request, rq);
 
-	sd_debug("preventing COW request, ongoing COW requests: %d",
-		 sys->nr_ongoing_cow_request);
+	sd_debug("preventing inode update request, ongoing inode update"
+		 " requests: %d", sys->nr_ongoing_inode_update_request);
 
-	sys->nr_prevent_cow++;
+	sys->nr_prevent_inode_update++;
 
-	if (sys->nr_ongoing_cow_request) {
-		list_add_tail(&rq->pending_prevent_cow_request_list,
-			      &sys->pending_prevent_cow_request_queue);
+	if (sys->nr_ongoing_inode_update_request) {
+		list_add_tail(&rq->pending_prevent_inode_update_reqs,
+			      &sys->pending_prevent_inode_update_request_queue);
 		get_request(rq);
 	}
 
 	return SD_RES_SUCCESS;
 }
 
-static int local_allow_cow(const struct sd_req *req, struct sd_rsp *rsp,
-			   void *data)
+static int local_allow_inode_update(const struct sd_req *req,
+				    struct sd_rsp *rsp, void *data)
 {
 	struct request *rq;
 
-	sd_debug("allowing COW request");
-	sys->nr_prevent_cow--;
+	sd_debug("allowing inode update request");
+	sys->nr_prevent_inode_update--;
 
-	if (sys->nr_prevent_cow)
+	if (sys->nr_prevent_inode_update)
 		return SD_RES_SUCCESS;
 
-	list_for_each_entry(rq, &sys->prevented_cow_request_queue,
-			    prevented_cow_request_list) {
-		list_del(&rq->prevented_cow_request_list);
+	list_for_each_entry(rq, &sys->prevented_inode_update_request_queue,
+			    prevented_inode_update_request_list) {
+		list_del(&rq->prevented_inode_update_request_list);
 		requeue_request(rq);
 	}
 
@@ -1577,16 +1577,16 @@ static struct sd_op_template sd_ops[] = {
 	},
 #endif
 
-	[SD_OP_PREVENT_COW] = {
-		.name = "PREVENT_COW",
+	[SD_OP_PREVENT_INODE_UPDATE] = {
+		.name = "PREVENT_INODE_UPDATE",
 		.type = SD_OP_TYPE_LOCAL,
-		.process_main = local_prevent_cow,
+		.process_main = local_prevent_inode_update,
 	},
 
-	[SD_OP_ALLOW_COW] = {
-		.name = "ALLOW_COW",
+	[SD_OP_ALLOW_INODE_UPDATE] = {
+		.name = "ALLOW_INODE_UPDATE",
 		.type = SD_OP_TYPE_LOCAL,
-		.process_main = local_allow_cow,
+		.process_main = local_allow_inode_update,
 	},
 
 	/* gateway I/O operations */
diff --git a/sheep/request.c b/sheep/request.c
index 5a251c2..dc5e5a2 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -93,16 +93,17 @@ static void gateway_op_done(struct work *work)
 	if (hdr->opcode == SD_OP_WRITE_OBJ && is_data_vid_update(hdr)) {
 		struct request *rq;
 
-		sys->nr_ongoing_cow_request--;
-		assert(0 <= sys->nr_ongoing_cow_request);
-		sd_debug("a number of ongoing cow request: %d",
-			 sys->nr_ongoing_cow_request);
+		sys->nr_ongoing_inode_update_request--;
+		assert(0 <= sys->nr_ongoing_inode_update_request);
+		sd_debug("a number of ongoing inode update request: %d",
+			 sys->nr_ongoing_inode_update_request);
 
-		if (!sys->nr_ongoing_cow_request) {
+		if (!sys->nr_ongoing_inode_update_request) {
 			list_for_each_entry(rq,
-				    &sys->pending_prevent_cow_request_queue,
-				    pending_prevent_cow_request_list) {
-				list_del(&rq->pending_prevent_cow_request_list);
+			    &sys->pending_prevent_inode_update_request_queue,
+			    pending_prevent_inode_update_reqs) {
+				list_del(
+					&rq->pending_prevent_inode_update_reqs);
 				put_request(rq);
 			}
 		}
@@ -353,16 +354,16 @@ queue_work:
 	}
 
 	if (req->rq.opcode == SD_OP_WRITE_OBJ && is_data_vid_update(&req->rq)) {
-		if (sys->nr_prevent_cow) {
-			sd_debug("preventing COW");
-			list_add_tail(&req->prevented_cow_request_list,
-				      &sys->prevented_cow_request_queue);
+		if (sys->nr_prevent_inode_update) {
+			sd_debug("preventing inode update");
+			list_add_tail(&req->prevented_inode_update_request_list,
+			      &sys->prevented_inode_update_request_queue);
 			return;
 		} else {
-			assert(0 <= sys->nr_ongoing_cow_request);
-			sys->nr_ongoing_cow_request++;
-			sd_debug("a number of ongoing cow request: %d",
-				 sys->nr_ongoing_cow_request);
+			assert(0 <= sys->nr_ongoing_inode_update_request);
+			sys->nr_ongoing_inode_update_request++;
+			sd_debug("a number of ongoing inode update request: %d",
+				 sys->nr_ongoing_inode_update_request);
 		}
 	}
 
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index 0c590c0..7b33f11 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -115,8 +115,8 @@ struct request {
 	enum REQUST_STATUS status;
 	bool stat; /* true if this request is during stat */
 
-	struct list_node prevented_cow_request_list;
-	struct list_node pending_prevent_cow_request_list;
+	struct list_node prevented_inode_update_request_list;
+	struct list_node pending_prevent_inode_update_reqs;
 };
 
 struct system_info {
@@ -166,10 +166,10 @@ struct system_info {
 	bool upgrade;
 	struct sd_stat stat;
 
-	int nr_prevent_cow;
-	int nr_ongoing_cow_request;
-	struct list_head prevented_cow_request_queue;
-	struct list_head pending_prevent_cow_request_queue;
+	int nr_prevent_inode_update;
+	int nr_ongoing_inode_update_request;
+	struct list_head prevented_inode_update_request_queue;
+	struct list_head pending_prevent_inode_update_request_queue;
 };
 
 struct disk {
-- 
1.7.1




More information about the sheepdog mailing list