[sheepdog] [PATCH] sheep: set response data size to zero by default

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Mon Sep 10 15:30:27 CEST 2012


We tend to forget to set rsp->data_length to 0 when we don't need to
send any data, so it looks better not to initialize the value with
req->data_length.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
 sheep/group.c   |    1 -
 sheep/ops.c     |   11 +++--------
 sheep/request.c |    5 -----
 3 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/sheep/group.c b/sheep/group.c
index 8c3b499..4661110 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -229,7 +229,6 @@ int local_get_node_list(const struct sd_req *req, struct sd_rsp *rsp,
 		node_rsp->local_idx = get_node_idx(current_vnode_info,
 						   &sys->this_node);
 	} else {
-		node_rsp->data_length = 0;
 		node_rsp->nr_nodes = 0;
 		node_rsp->local_idx = 0;
 	}
diff --git a/sheep/ops.c b/sheep/ops.c
index 4c0426f..4c3e9ac 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -444,9 +444,8 @@ static int local_stat_cluster(struct request *req)
 	int i, max_logs;
 	uint32_t epoch;
 
-	max_logs = rsp->data_length / sizeof(*log);
+	max_logs = req->rq.data_length / sizeof(*log);
 	epoch = get_latest_epoch();
-	rsp->data_length = 0;
 	for (i = 0; i < max_logs; i++) {
 		if (epoch <= 0)
 			break;
@@ -499,10 +498,8 @@ static int local_get_epoch(struct request *req)
 	dprintf("%d\n", epoch);
 
 	nr_nodes = epoch_log_read(epoch, req->data, req->rq.data_length);
-	if (nr_nodes == -1) {
-		req->rp.data_length = 0;
+	if (nr_nodes == -1)
 		return SD_RES_NO_TAG;
-	}
 
 	req->rp.data_length = nr_nodes * sizeof(struct sd_node) + sizeof(time_t);
 	return SD_RES_SUCCESS;
@@ -861,10 +858,8 @@ int peer_read_obj(struct request *req)
 	iocb.length = hdr->data_length;
 	iocb.offset = hdr->obj.offset;
 	ret = sd_store->read(hdr->obj.oid, &iocb);
-	if (ret != SD_RES_SUCCESS) {
-		rsp->data_length = 0;
+	if (ret != SD_RES_SUCCESS)
 		goto out;
-	}
 
 	rsp->data_length = hdr->data_length;
 	if (hdr->obj.copies)
diff --git a/sheep/request.c b/sheep/request.c
index ae12bd3..ab9a9ef 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -582,14 +582,9 @@ static inline int begin_rx(struct client_info *ci)
 static inline void finish_rx(struct client_info *ci)
 {
 	struct request *req;
-	struct sd_req *hdr = &ci->conn.rx_hdr;
 
 	req = ci->rx_req;
 	init_rx_hdr(ci);
-	if (hdr->flags & SD_FLAG_CMD_WRITE)
-		req->rp.data_length = 0;
-	else
-		req->rp.data_length = hdr->data_length;
 
 	dprintf("%d, %s:%d\n", ci->conn.fd, ci->conn.ipstr, ci->conn.port);
 	queue_request(req);
-- 
1.7.2.5




More information about the sheepdog mailing list