[sheepdog] [PATCH] use queue_request when resume waiting requests
Christoph Hellwig
hch at infradead.org
Wed May 30 16:54:06 CEST 2012
On Wed, May 30, 2012 at 04:57:59PM +0800, levin li wrote:
> >> put_vnode_info(req->vnodes);
> >> req->vnodes = get_vnode_info();
> >> setup_access_to_local_objects(req);
> >> + list_del(&req->request_list);
> >> + process_io_request(req);
> >
> > This also seems prettry equivalent to the (re)queue_request sequence.
> >
>
> Here it's different from requeue_request(), we did not queue the request again,
> but directly process it.
Before your patch this case statement does:
req->rq.epoch = sys->epoch;
put_vnode_info(req->vnodes);
req->vnodes = get_vnode_info();
setup_access_to_local_objects(req);
list_del(&req->request_list);
process_io_request(req);
queue_request does:
req->op = get_sd_op(hdr->opcode);
<check sys->status>
req->rq.epoch = epoch = sys->epoch; (unless local)
req->vnodes = get_vnode_info();
<assign work methods>
setup_access_to_local_objects(req);
check_request(req)
process_io_request(req);
so using the same sequence as the others here is fine - we get the
additional superflous req->op and work method assignments as well
as the required check_request call.
More information about the sheepdog
mailing list