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 |