[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/ops_file.c b/fs/gfs2/ops_file.c
index b860378..cf2e26e 100644
--- a/fs/gfs2/ops_file.c
+++ b/fs/gfs2/ops_file.c
@@ -688,7 +688,7 @@
 	if (!fp)
 		return -ENOMEM;
 
-	init_MUTEX(&fp->f_fl_mutex);
+	mutex_init(&fp->f_fl_mutex);
 
 	fp->f_inode = ip;
 	fp->f_vfile = file;
@@ -858,7 +858,7 @@
 	state = (fl->fl_type == F_WRLCK) ? LM_ST_EXCLUSIVE : LM_ST_SHARED;
 	flags = ((IS_SETLKW(cmd)) ? 0 : LM_FLAG_TRY) | GL_EXACT | GL_NOCACHE;
 
-	down(&fp->f_fl_mutex);
+	mutex_lock(&fp->f_fl_mutex);
 
 	gl = fl_gh->gh_gl;
 	if (gl) {
@@ -890,7 +890,7 @@
 	}
 
  out:
-	up(&fp->f_fl_mutex);
+	mutex_unlock(&fp->f_fl_mutex);
 
 	return error;
 }
@@ -900,11 +900,11 @@
 	struct gfs2_file *fp = get_v2fp(file);
 	struct gfs2_holder *fl_gh = &fp->f_fl_gh;
 
-	down(&fp->f_fl_mutex);
+	mutex_lock(&fp->f_fl_mutex);
 	flock_lock_file_wait(file, fl);
 	if (fl_gh->gh_gl)
 		gfs2_glock_dq_uninit(fl_gh);
-	up(&fp->f_fl_mutex);
+	mutex_unlock(&fp->f_fl_mutex);
 }
 
 /**