diff options
Diffstat (limited to 'fs/gfs2/trans.c')
-rw-r--r-- | fs/gfs2/trans.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c index ad3e2fb763d7..adbd27875ef9 100644 --- a/fs/gfs2/trans.c +++ b/fs/gfs2/trans.c | |||
@@ -50,6 +50,7 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks, | |||
50 | if (revokes) | 50 | if (revokes) |
51 | tr->tr_reserved += gfs2_struct2blk(sdp, revokes, | 51 | tr->tr_reserved += gfs2_struct2blk(sdp, revokes, |
52 | sizeof(u64)); | 52 | sizeof(u64)); |
53 | sb_start_intwrite(sdp->sd_vfs); | ||
53 | gfs2_holder_init(sdp->sd_trans_gl, LM_ST_SHARED, 0, &tr->tr_t_gh); | 54 | gfs2_holder_init(sdp->sd_trans_gl, LM_ST_SHARED, 0, &tr->tr_t_gh); |
54 | 55 | ||
55 | error = gfs2_glock_nq(&tr->tr_t_gh); | 56 | error = gfs2_glock_nq(&tr->tr_t_gh); |
@@ -68,6 +69,7 @@ fail_gunlock: | |||
68 | gfs2_glock_dq(&tr->tr_t_gh); | 69 | gfs2_glock_dq(&tr->tr_t_gh); |
69 | 70 | ||
70 | fail_holder_uninit: | 71 | fail_holder_uninit: |
72 | sb_end_intwrite(sdp->sd_vfs); | ||
71 | gfs2_holder_uninit(&tr->tr_t_gh); | 73 | gfs2_holder_uninit(&tr->tr_t_gh); |
72 | kfree(tr); | 74 | kfree(tr); |
73 | 75 | ||
@@ -116,6 +118,7 @@ void gfs2_trans_end(struct gfs2_sbd *sdp) | |||
116 | gfs2_holder_uninit(&tr->tr_t_gh); | 118 | gfs2_holder_uninit(&tr->tr_t_gh); |
117 | kfree(tr); | 119 | kfree(tr); |
118 | } | 120 | } |
121 | sb_end_intwrite(sdp->sd_vfs); | ||
119 | return; | 122 | return; |
120 | } | 123 | } |
121 | 124 | ||
@@ -136,6 +139,7 @@ void gfs2_trans_end(struct gfs2_sbd *sdp) | |||
136 | 139 | ||
137 | if (sdp->sd_vfs->s_flags & MS_SYNCHRONOUS) | 140 | if (sdp->sd_vfs->s_flags & MS_SYNCHRONOUS) |
138 | gfs2_log_flush(sdp, NULL); | 141 | gfs2_log_flush(sdp, NULL); |
142 | sb_end_intwrite(sdp->sd_vfs); | ||
139 | } | 143 | } |
140 | 144 | ||
141 | /** | 145 | /** |