[GFS2] Use mutices rather than semaphores

As well as a number of minor bug fixes, this patch changes GFS
to use mutices rather than semaphores. This results in better
information in case there are any locking problems.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index 104e664..0a0ea70 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -33,7 +33,7 @@
 		return -EINVAL;
 	}
 
-	tr = kzalloc(sizeof(struct gfs2_trans), GFP_KERNEL);
+	tr = kzalloc(sizeof(struct gfs2_trans), GFP_NOFS);
 	if (!tr)
 		return -ENOMEM;
 
@@ -51,7 +51,7 @@
 
 	error = -ENOMEM;
 	tr->tr_t_gh = gfs2_holder_get(sdp->sd_trans_gl, LM_ST_SHARED,
-				      GL_NEVER_RECURSE, GFP_KERNEL);
+				      GL_NEVER_RECURSE, GFP_NOFS);
 	if (!tr->tr_t_gh)
 		goto fail;