[sheepdog] [PATCH 7/7] sheep: fix SD_RES_OLD_NODE_VER handling in check_request_epoch

Liu Yuan namei.unix at gmail.com
Fri Jun 1 09:15:43 CEST 2012


On 05/31/2012 05:48 PM, Christoph Hellwig wrote:

>  		/* ask gateway to retry. */
>  		req->rp.result = SD_RES_OLD_NODE_VER;
>  		req->rp.epoch = sys->epoch;
> -		req->work.done(&req->work);
> +		req_done(req);
>  		return -1;
>  	} else if (after(req->rq.epoch, sys->epoch)) {
>  		eprintf("new node version %u, %u, %x\n",


So for the gateway happens to be this local node, we response with
SD_RES_OLD_NODE_VER to upper layer? I don't think upper layer should
handle this error code, we need to call work.done() to queue the request
again and fix double deletion problem.

Thanks,
Yuan



More information about the sheepdog mailing list