[sheepdog] [PATCH 6/6] sheep: clear bit in vdi_deleted if vdi is created

Liu Yuan namei.unix at gmail.com
Mon Mar 16 13:49:34 CET 2015


From: Liu Yuan <liuyuan at cmss.chinamobile.com>

This patch fixes following problem:

$ dog vdi create test 100M
$ dog vdi delete test
$ dog vdi create test 200M
$ dog vdi list # expect show test, but nothing shows out.

Which was brought by

*commit f68feab7edc0ded86701a2e902d85616b24942ab
*Author: Saeki Masaki <saeki.masaki at po.ntts.co.jp>
*Date:   Wed Nov 26 10:50:46 2014 +0900

    sheep/dog: introduce new bitmap for delete vdi

Cc: Saeki Masaki <saeki.masaki at po.ntts.co.jp>
Signed-off-by: Liu Yuan <liuyuan at cmss.chinamobile.com>
---
 sheep/ops.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sheep/ops.c b/sheep/ops.c
index 8a0f77c..464ae0b 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -130,11 +130,14 @@ static int post_cluster_new_vdi(const struct sd_req *req, struct sd_rsp *rsp,
 	unsigned long nr = rsp->vdi.vdi_id;
 	int ret = rsp->result;
 
-	sd_info("req->vdi.base_vdi_id: %x, rsp->vdi.vdi_id: %x", req->vdi.base_vdi_id, rsp->vdi.vdi_id);
+	sd_info("req->vdi.base_vdi_id: %x, rsp->vdi.vdi_id: %x",
+		req->vdi.base_vdi_id, rsp->vdi.vdi_id);
 
 	sd_debug("done %d %lx", ret, nr);
-	if (ret == SD_RES_SUCCESS)
+	if (ret == SD_RES_SUCCESS) {
 		atomic_set_bit(nr, sys->vdi_inuse);
+		atomic_clear_bit(nr, sys->vdi_deleted);
+	}
 
 	return ret;
 }
-- 
1.9.1




More information about the sheepdog mailing list