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

Liu Yuan namei.unix at gmail.com
Tue Mar 17 05:42:35 CET 2015


On Mon, Mar 16, 2015 at 08:49:34PM +0800, Liu Yuan wrote:
> 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
> 

At least this patch fixes a real problem and should be applied, Hitoshi?

Yuan



More information about the sheepdog mailing list