[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