[Sheepdog] [PATCH 2/3] sheep: handle CPG_EVENT_REQUEST even if CPG_EVENT_DELIVER exists

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Thu Sep 1 18:37:51 CEST 2011


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




More information about the sheepdog mailing list