[GFS2] Update locking in log.c

Replace the lock_for_trans()/lock_for_flush() functions with an rwsem.
In fact the sd_log_flush_lock becomes an rwsem (the write part of it)
and is extended slightly to cover everything that the lock_for_flush()
used to cover. The read part of the lock is instead of lock_for_trans().

This corrects the races in the original code and reduces the code size.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index 63e7fed..aa1a619 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -74,10 +74,10 @@
 
 	return 0;
 
- fail_gunlock:
+fail_gunlock:
 	gfs2_glock_dq(&tr->tr_t_gh);
 
- fail_holder_uninit:
+fail_holder_uninit:
 	gfs2_holder_uninit(&tr->tr_t_gh);
 	kfree(tr);