Signed-off-by: Liu Yuan <[email protected]>
---
 sheep/gateway.c |   10 ----------
 sheep/request.c |    6 ++++++
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/sheep/gateway.c b/sheep/gateway.c
index 35858e6..dc2cc7d 100644
--- a/sheep/gateway.c
+++ b/sheep/gateway.c
@@ -41,11 +41,6 @@ int gateway_read_obj(struct request *req)
                goto out;
        }
 
-       if (req->vinfo->nr_vnodes == 0) {
-               sd_err("there is no living nodes");
-               return SD_RES_HALT;
-       }
-
        nr_copies = get_req_copy_number(req);
 
        oid_to_vnodes(req->vinfo->vnodes, req->vinfo->nr_vnodes, oid,
@@ -266,11 +261,6 @@ static int gateway_forward_request(struct request *req)
 
        sd_debug("%"PRIx64, oid);
 
-       if (req->vinfo->nr_vnodes == 0) {
-               sd_err("there is no living nodes");
-               return SD_RES_HALT;
-       }
-
        gateway_init_fwd_hdr(&hdr, &req->rq);
        op = get_sd_op(hdr.opcode);
 
diff --git a/sheep/request.c b/sheep/request.c
index 43c4836..53d38c7 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -303,6 +303,12 @@ static void queue_gateway_request(struct request *req)
                        return;
 
 queue_work:
+       if (req->vinfo->nr_vnodes == 0) {
+               sd_err("there is no living nodes");
+               req->rp.result = SD_RES_HALT;
+               put_request(req);
+               return;
+       }
        req->work.fn = do_process_work;
        req->work.done = gateway_op_done;
        queue_work(sys->gateway_wqueue, &req->work);
-- 
1.7.9.5

-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to