[Sheepdog] [PATCH 3/3] sheep: handle CPG_EVENT_DELIVER even if there are outstanding I/Os
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Thu Sep 1 18:37:52 CEST 2011
This patch prevents VM I/Os from blocking a CPG_EVENT_DELIVER event.
Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
sheep/group.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/sheep/group.c b/sheep/group.c
index ab253a6..eb0c4e2 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -1567,12 +1567,15 @@ do_retry:
goto do_retry;
if (cpg_event_running() || cpg_event_suspended() ||
- list_empty(&sys->cpg_event_siblings) || sys->nr_outstanding_io)
+ list_empty(&sys->cpg_event_siblings))
return;
cevent = list_first_entry(&sys->cpg_event_siblings,
struct cpg_event, cpg_event_list);
+ if (cevent->ctype == CPG_EVENT_CONCHG && sys->nr_outstanding_io)
+ return;
+
list_del(&cevent->cpg_event_list);
sys->cur_cevent = cevent;
--
1.7.2.5
More information about the sheepdog
mailing list