orangefs: make sure that reopening pvfs2-req won't overlap with the end of close

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
diff --git a/fs/orangefs/devorangefs-req.c b/fs/orangefs/devorangefs-req.c
index dadeb38..92573d9 100644
--- a/fs/orangefs/devorangefs-req.c
+++ b/fs/orangefs/devorangefs-req.c
@@ -85,7 +85,7 @@
 	mutex_lock(&devreq_mutex);
 
 	if (open_access_count == 0) {
-		open_access_count++;
+		open_access_count = 1;
 		ret = 0;
 	} else {
 		DUMP_DEVICE_ERROR();
@@ -533,12 +533,11 @@
 	if (orangefs_get_bufmap_init())
 		orangefs_bufmap_finalize();
 
-	open_access_count--;
+	open_access_count = -1;
 
 	unmounted = mark_all_pending_mounts();
 	gossip_debug(GOSSIP_DEV_DEBUG, "ORANGEFS Device Close: Filesystem(s) %s\n",
 		     (unmounted ? "UNMOUNTED" : "MOUNTED"));
-	mutex_unlock(&devreq_mutex);
 
 	/*
 	 * Walk through the list of ops in the request list, mark them
@@ -552,6 +551,8 @@
 	purge_inprogress_ops();
 	gossip_debug(GOSSIP_DEV_DEBUG,
 		     "pvfs2-client-core: device close complete\n");
+	open_access_count = 0;
+	mutex_unlock(&devreq_mutex);
 	return 0;
 }