lkml.org 
[lkml]   [2009]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/24] GFS2: Move journal live test at transaction start
    Date
    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>

    diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
    index 053752d..4ef0e9f 100644
    --- a/fs/gfs2/trans.c
    +++ b/fs/gfs2/trans.c
    @@ -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;
    @@ -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;
    --
    1.6.0.6


    \
     
     \ /
      Last update: 2009-06-10 11:43    [W:0.034 / U:58.944 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site