[Sheepdog] [PATCH] make remove_object() returns -1 when fail to delete one of the objects

Liu Yuan namei.unix at gmail.com
Fri Apr 27 06:44:23 CEST 2012


On 04/27/2012 12:29 PM, Li Wenpeng wrote:

> From: levin li <xingke.lwp at taobao.com>
> 
> Currently, remove_object() only returns -1 when the last deletion fail,
> it's not correct, we need to returns -1 when fail to delete any one of
> the objects
> 
> Signed-off-by: levin li <xingke.lwp at taobao.com>
> ---
>  sheep/sdnet.c |    7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/sheep/sdnet.c b/sheep/sdnet.c
> index 74d42f9..d20ab79 100644
> --- a/sheep/sdnet.c
> +++ b/sheep/sdnet.c
> @@ -821,7 +821,7 @@ int remove_object(struct sd_vnode *e,
>  	char name[128];
>  	struct sd_obj_req hdr;
>  	struct sd_obj_rsp *rsp = (struct sd_obj_rsp *)&hdr;
> -	int i = 0, n, fd, ret;
> +	int i = 0, n, fd, ret, err = 0;
>  
>  	if (nr > zones)
>  		nr = zones;
> @@ -852,9 +852,12 @@ int remove_object(struct sd_vnode *e,
>  
>  		if (ret)
>  			return -1;
> +
> +		if (rsp->result != SD_RES_SUCCESS)
> +			err = 1;
>  	}
>  
> -	if (rsp->result != SD_RES_SUCCESS)
> +	if (err)
>  		return -1;
>  
>  	return 0;


Applied.

Thanks,
Yuan



More information about the sheepdog mailing list