avoid double lock (lucho ionkov)
diff --git a/src/lib9p/req.c b/src/lib9p/req.c
index 907db00..b958e19 100644
--- a/src/lib9p/req.c
+++ b/src/lib9p/req.c
@@ -84,8 +84,8 @@
 			closefid(r->afid);
 		if(r->oldreq)
 			closereq(r->oldreq);
-		for(i=0; i<r->nflush; i++)
-			respond(r->flush[i], nil);
+		if(r->nflush)
+			fprint(2, "closereq: flushes remaining\n");
 		free(r->flush);
 		switch(r->ifcall.type){
 		case Tstat:
diff --git a/src/lib9p/srv.c b/src/lib9p/srv.c
index 29b1ac2..e75600d 100644
--- a/src/lib9p/srv.c
+++ b/src/lib9p/srv.c
@@ -856,8 +856,10 @@
 free:
 	qlock(&r->lk);	/* no one will add flushes now */
 
-	for(i=0; i<r->nflush; i++)
+	for(i=0; i<r->nflush; i++){
+		r->flush[i]->oldreq = nil;	/* so it doesn't try to lock us! */
 		respond(r->flush[i], nil);
+	}
 	free(r->flush);
 	r->nflush = 0;
 	r->flush = nil;