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

Christoph Hellwig hch at infradead.org
Fri Jun 1 09:29:09 CEST 2012


On Fri, Jun 01, 2012 at 03:15:43PM +0800, Liu Yuan wrote:
> 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.

At this point in the series this code is never called by the gateway
sheep.




More information about the sheepdog mailing list