[POWERPC] Consolidate pseries platform header files into pseries.h
[safe/jmp/linux-2.6] / fs / gfs2 / trans.c
index 3fae3d4..f8dabf8 100644 (file)
@@ -1,10 +1,10 @@
 /*
  * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
- * Copyright (C) 2004-2005 Red Hat, Inc.  All rights reserved.
+ * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved.
  *
  * This copyrighted material is made available to anyone wishing to use,
  * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
+ * of the GNU General Public License version 2.
  */
 
 #include <linux/sched.h>
 #include <linux/buffer_head.h>
 #include <linux/gfs2_ondisk.h>
 #include <linux/kallsyms.h>
-#include <asm/semaphore.h>
+#include <linux/lm_interface.h>
 
 #include "gfs2.h"
-#include "lm_interface.h"
 #include "incore.h"
 #include "glock.h"
 #include "log.h"
@@ -44,14 +43,13 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
        tr->tr_revokes = revokes;
        tr->tr_reserved = 1;
        if (blocks)
-               tr->tr_reserved += 1 + blocks;
+               tr->tr_reserved += 6 + blocks;
        if (revokes)
                tr->tr_reserved += gfs2_struct2blk(sdp, revokes,
-                                                  sizeof(uint64_t));
+                                                  sizeof(u64));
        INIT_LIST_HEAD(&tr->tr_list_buf);
 
-       gfs2_holder_init(sdp->sd_trans_gl, LM_ST_SHARED,
-                        GL_NEVER_RECURSE, &tr->tr_t_gh);
+       gfs2_holder_init(sdp->sd_trans_gl, LM_ST_SHARED, 0, &tr->tr_t_gh);
 
        error = gfs2_glock_nq(&tr->tr_t_gh);
        if (error)
@@ -83,20 +81,15 @@ fail_holder_uninit:
 
 void gfs2_trans_end(struct gfs2_sbd *sdp)
 {
-       struct gfs2_trans *tr;
+       struct gfs2_trans *tr = current->journal_info;
 
-       tr = current->journal_info;
+       BUG_ON(!tr);
        current->journal_info = NULL;
 
-       if (gfs2_assert_warn(sdp, tr))
-               return;
-
        if (!tr->tr_touched) {
                gfs2_log_release(sdp, tr->tr_reserved);
-
                gfs2_glock_dq(&tr->tr_t_gh);
                gfs2_holder_uninit(&tr->tr_t_gh);
-
                kfree(tr);
                return;
        }
@@ -106,20 +99,19 @@ void gfs2_trans_end(struct gfs2_sbd *sdp)
                       tr->tr_num_buf, tr->tr_blocks);
                print_symbol(KERN_WARNING "GFS2: Transaction created at: %s\n", tr->tr_ip);
        }
-       if (gfs2_assert_withdraw(sdp, tr->tr_num_revoke <= tr->tr_revokes))
+       if (gfs2_assert_withdraw(sdp, tr->tr_num_revoke <= tr->tr_revokes)) {
                fs_err(sdp, "tr_num_revoke = %u, tr_revokes = %u ",
                       tr->tr_num_revoke, tr->tr_revokes);
                print_symbol(KERN_WARNING "GFS2: Transaction created at: %s\n", tr->tr_ip);
+       }
 
        gfs2_log_commit(sdp, tr);
-
         gfs2_glock_dq(&tr->tr_t_gh);
         gfs2_holder_uninit(&tr->tr_t_gh);
-
         kfree(tr);
 
        if (sdp->sd_vfs->s_flags & MS_SYNCHRONOUS)
-               gfs2_log_flush(sdp);
+               gfs2_log_flush(sdp, NULL);
 }
 
 void gfs2_trans_add_gl(struct gfs2_glock *gl)
@@ -150,7 +142,7 @@ void gfs2_trans_add_bh(struct gfs2_glock *gl, struct buffer_head *bh, int meta)
        lops_add(sdp, &bd->bd_le);
 }
 
-void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, uint64_t blkno)
+void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, u64 blkno)
 {
        struct gfs2_revoke *rv = kmalloc(sizeof(struct gfs2_revoke),
                                         GFP_NOFS | __GFP_NOFAIL);
@@ -159,7 +151,7 @@ void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, uint64_t blkno)
        lops_add(sdp, &rv->rv_le);
 }
 
-void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, uint64_t blkno)
+void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, u64 blkno)
 {
        struct gfs2_revoke *rv;
        int found = 0;