[Sheepdog] [PATCH] sheep: resume pending I/O requests after setting next recovery

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Mon Dec 12 12:31:10 CET 2011


We need to set recovery_work before calling resume_pending_requests()
because sheep checks the value to decide whether object recovery is
running or not.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
 sheep/store.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/sheep/store.c b/sheep/store.c
index de952d4..92ba8ec 100644
--- a/sheep/store.c
+++ b/sheep/store.c
@@ -1562,7 +1562,6 @@ static void recover_done(struct work *work, int idx)
 	recovering_work = NULL;
 
 	sys->recovered_epoch = rw->epoch;
-	resume_pending_requests();
 
 	free(rw->oids);
 	free(rw);
@@ -1574,6 +1573,8 @@ static void recover_done(struct work *work, int idx)
 		recovering_work = rw;
 		queue_work(sys->recovery_wqueue, &rw->work);
 	}
+
+	resume_pending_requests();
 }
 
 static int __fill_obj_list(struct sheepdog_node_list_entry *e, uint32_t epoch,
-- 
1.7.2.5




More information about the sheepdog mailing list