if a CPG_EVENT_CONCHG event occured in the time window between a CPG_EVENT_DELIVER & CPG_EVENT_REQUEST event pair(for example, a vdi lookup operation followed by a vdi meta object read operation) cluster will hang forever for the meta object read event be blocked. Yibin Shen On Fri, Sep 2, 2011 at 12:37 AM, MORITA Kazutaka < morita.kazutaka at lab.ntt.co.jp> wrote: > This patch prevents a CPG_EVENT_DELIVER event from blocking VM I/Os. > > Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> > --- > sheep/group.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/sheep/group.c b/sheep/group.c > index 6690125..ab253a6 100644 > --- a/sheep/group.c > +++ b/sheep/group.c > @@ -1487,7 +1487,9 @@ do_retry: > list_for_each_entry_safe(cevent, n, &sys->cpg_event_siblings, > cpg_event_list) { > struct request *req = container_of(cevent, struct request, > cev); > > - if (cevent->ctype != CPG_EVENT_REQUEST) > + if (cevent->ctype == CPG_EVENT_DELIVER) > + continue; > + if (cevent->ctype == CPG_EVENT_CONCHG) > break; > > list_del(&cevent->cpg_event_list); > -- > 1.7.2.5 > > -- > sheepdog mailing list > sheepdog at lists.wpkg.org > http://lists.wpkg.org/mailman/listinfo/sheepdog > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.wpkg.org/pipermail/sheepdog/attachments/20110913/0840a7ca/attachment.html> |