Skip to content

Commit

Permalink
GFS2: Move journal live test at transaction start
Browse files Browse the repository at this point in the history
There seems little point grabbing the transaction glock
only to have to release it again if the journal isn't
live. This moves the test earlier to avoid grabbing the lock
when we don't need it in the first place.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
  • Loading branch information
Steven Whitehouse committed May 13, 2009
1 parent 7537d81 commit a1c0643
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions fs/gfs2/trans.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
BUG_ON(current->journal_info);
BUG_ON(blocks == 0 && revokes == 0);

if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags))
return -EROFS;

tr = kzalloc(sizeof(struct gfs2_trans), GFP_NOFS);
if (!tr)
return -ENOMEM;
Expand All @@ -54,12 +57,6 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
if (error)
goto fail_holder_uninit;

if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) {
tr->tr_t_gh.gh_flags |= GL_NOCACHE;
error = -EROFS;
goto fail_gunlock;
}

error = gfs2_log_reserve(sdp, tr->tr_reserved);
if (error)
goto fail_gunlock;
Expand Down

0 comments on commit a1c0643

Please sign in to comment.