On Wed, Jun 27, 2012 at 03:24:58PM +0800, levin li wrote: > From: levin li <xingke.lwp at taobao.com> > > this patch is based on my previous patch set: > http://lists.wpkg.org/pipermail/sheepdog/2012-June/004843.html > -------------------------------------------------------------- >8 > VDI deletion work should response to client until all the objects > have been deleted just as what file system does, this patch makes > it call req_done to send back a response until deletion_one_done() > has been called. I don't understand what the point of the blocking_list list is, as it never gets walked. I'd rather implement the delaying req_done the following way: - add a "int refcnt" field to struct request - req->refcount starts out as one when allocating a request - req_done decrements req->refcnt, and only finishes the request once req->refcount has reached zero - req_done gets rename to e.g. put_request - start_deletion increments the reference count - delete_one_done does an addional put_request |