From 36851b9e27f8b93ee71b6e80ab29178962f91a92 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Fri, 23 Mar 2007 09:05:12 +0000 Subject: [PATCH] --- yaml --- r: 54455 b: refs/heads/master c: 6883562588bc6c70776ecc396ee7eda36c2c8da9 h: refs/heads/master i: 54453: b148e0050b0240ffde11b45cca6409e518c7e0f6 54451: 652b5c7e7b569e0a251626ca133120775e3d4273 54447: 5ab621a18e699283c03463837886c9820c2d7cb2 v: v3 --- [refs] | 2 +- trunk/fs/gfs2/lops.c | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 98234d84476d..5b2bc5b0d502 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f35ac346bc48b2086aa94f031baf1f6237a89de6 +refs/heads/master: 6883562588bc6c70776ecc396ee7eda36c2c8da9 diff --git a/trunk/fs/gfs2/lops.c b/trunk/fs/gfs2/lops.c index 16bb4b4561ae..f82d84d05d23 100644 --- a/trunk/fs/gfs2/lops.c +++ b/trunk/fs/gfs2/lops.c @@ -33,16 +33,17 @@ static void glock_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) tr->tr_touched = 1; - if (!list_empty(&le->le_list)) - return; - gl = container_of(le, struct gfs2_glock, gl_le); if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(gl))) return; - gfs2_glock_hold(gl); - set_bit(GLF_DIRTY, &gl->gl_flags); gfs2_log_lock(sdp); + if (!list_empty(&le->le_list)){ + gfs2_log_unlock(sdp); + return; + } + gfs2_glock_hold(gl); + set_bit(GLF_DIRTY, &gl->gl_flags); sdp->sd_log_num_gl++; list_add(&le->le_list, &sdp->sd_log_le_gl); gfs2_log_unlock(sdp); @@ -415,13 +416,14 @@ static void rg_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) tr->tr_touched = 1; - if (!list_empty(&le->le_list)) - return; - rgd = container_of(le, struct gfs2_rgrpd, rd_le); - gfs2_rgrp_bh_hold(rgd); gfs2_log_lock(sdp); + if (!list_empty(&le->le_list)){ + gfs2_log_unlock(sdp); + return; + } + gfs2_rgrp_bh_hold(rgd); sdp->sd_log_num_rg++; list_add(&le->le_list, &sdp->sd_log_le_rg); gfs2_log_unlock(sdp);