gfs2: fix assertion in log_refund()
PATCH 1/1 gfs2: fix assertion in log_refund()
since unsigned, unused >= 0 is always true.
Signed-off-by Roel Kluin <[email protected]>
---
fs/gfs2/log.c +1 -1
@@ -769,8 +769,8 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr) sdp->sd_log_commited_revoke += tr->tr_num_revoke - tr->tr_num_revoke_rm;gfs2_assert_withdraw (sdp, ((int )sdp->sd_log_commited_revoke) >=0 ); reserved =calc_reserved (sdp); +gfs2_assert_withdraw (sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved); unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; -gfs2_assert_withdraw (sdp, unused >=0 );atomic_add (unused, &sdp->sd_log_blks_free);gfs2_assert_withdraw (sdp,atomic_read (&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks);
Hi,
Now in the GFS2 -nmw git tree, which I'm just about to send a pull request for,
Steve.
Quoted 18 lines · Roel Kluin
since unsigned, unused >= 0 is always true.
Signed-off-by Roel Kluin <[email protected]>---
fs/gfs2/log.c +1
-1@@ -769,8 +769,8 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr) sdp->sd_log_commited_revoke += tr->tr_num_revoke - tr->tr_num_revoke_rm;gfs2_assert_withdraw (sdp, ((int )sdp->sd_log_commited_revoke) >=0 ); reserved =calc_reserved (sdp); +gfs2_assert_withdraw (sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved); unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; -gfs2_assert_withdraw (sdp, unused >=0 );atomic_add (unused, &sdp->sd_log_blks_free);gfs2_assert_withdraw (sdp,atomic_read (&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks);