If we retry a request from io_op_done we currenly opencode the sequence in
queue_request, except that the call to check_request is missing.  Given
that the epoch may change the call to check_request is nesscary and we
should call queue_request in io_op_done as well.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: sheepdog/sheep/sdnet.c
===================================================================
--- sheepdog.orig/sheep/sdnet.c	2012-05-31 19:08:28.836733132 +0200
+++ sheepdog/sheep/sdnet.c	2012-05-31 19:09:32.884734768 +0200
@@ -190,12 +190,9 @@ static void io_op_done(struct work *work
 	return;
 
 retry:
-	req->rq.epoch = sys->epoch;
-
-	put_vnode_info(req->vnodes);
-	req->vnodes = get_vnode_info();
-	setup_access_to_local_objects(req);
-	process_io_request(req);
+	if (req->vnodes)
+		put_vnode_info(req->vnodes);
+	queue_request(req);
 }
 
 static void local_op_done(struct work *work)


