Commit a1c0643f authored by Steven Whitehouse's avatar Steven Whitehouse

GFS2: Move journal live test at transaction start

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: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 7537d81a
...@@ -33,6 +33,9 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks, ...@@ -33,6 +33,9 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
BUG_ON(current->journal_info); BUG_ON(current->journal_info);
BUG_ON(blocks == 0 && revokes == 0); 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); tr = kzalloc(sizeof(struct gfs2_trans), GFP_NOFS);
if (!tr) if (!tr)
return -ENOMEM; return -ENOMEM;
...@@ -54,12 +57,6 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks, ...@@ -54,12 +57,6 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
if (error) if (error)
goto fail_holder_uninit; 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); error = gfs2_log_reserve(sdp, tr->tr_reserved);
if (error) if (error)
goto fail_gunlock; goto fail_gunlock;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment