[sheepdog] [PATCH] sheep: let outstanding IO req doesn't block confchg event

Christoph Hellwig hch at infradead.org
Wed May 23 19:24:31 CEST 2012


On Fri, May 18, 2012 at 09:27:10PM +0800, Liu Yuan wrote:
> > Do you already have a plan of attack for fixing this?
> > 
> 
> 
> Yes, I have some unsent patches sit on my tree. For Gateway requests
> only, it runs without problem, but there is some corner case when
> recovery involved in, especially multiple node confchg events that my
> patch set doesn't handle very well. So I only post the series that
> doesn't cause trouble yet to get reviews. I think these patches can get
> in first.
> 
> When I pass my tests, I'll post left ones.

Do you have an update on the progress on this?  Also if you need any
help with it I'm happy to lend a hand.

If allowing I/O during recovery takes more time we'll probably need a
patch like the one below in the meantime to avoid problems with doing
I/O during recovery:


Index: sheepdog/sheep/group.c
===================================================================
--- sheepdog.orig/sheep/group.c	2012-05-23 19:09:55.720075809 +0200
+++ sheepdog/sheep/group.c	2012-05-23 19:10:57.140077383 +0200
@@ -1090,6 +1090,9 @@ static void process_request_queue(void)
 {
 	struct request *req, *n;
 
+	if (event_running)
+		return;
+
 	list_for_each_entry_safe(req, n, &sys->request_queue, request_list) {
 		list_del(&req->request_list);
 



More information about the sheepdog mailing list