diff options
Diffstat (limited to 'fs/gfs2/trans.c')
| -rw-r--r-- | fs/gfs2/trans.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c index f8dabf8446bb..717983e2c2ae 100644 --- a/fs/gfs2/trans.c +++ b/fs/gfs2/trans.c | |||
| @@ -142,25 +142,25 @@ void gfs2_trans_add_bh(struct gfs2_glock *gl, struct buffer_head *bh, int meta) | |||
| 142 | lops_add(sdp, &bd->bd_le); | 142 | lops_add(sdp, &bd->bd_le); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, u64 blkno) | 145 | void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd) |
| 146 | { | 146 | { |
| 147 | struct gfs2_revoke *rv = kmalloc(sizeof(struct gfs2_revoke), | 147 | BUG_ON(!list_empty(&bd->bd_le.le_list)); |
| 148 | GFP_NOFS | __GFP_NOFAIL); | 148 | BUG_ON(!list_empty(&bd->bd_ail_st_list)); |
| 149 | lops_init_le(&rv->rv_le, &gfs2_revoke_lops); | 149 | BUG_ON(!list_empty(&bd->bd_ail_gl_list)); |
| 150 | rv->rv_blkno = blkno; | 150 | lops_init_le(&bd->bd_le, &gfs2_revoke_lops); |
| 151 | lops_add(sdp, &rv->rv_le); | 151 | lops_add(sdp, &bd->bd_le); |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, u64 blkno) | 154 | void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, u64 blkno) |
| 155 | { | 155 | { |
| 156 | struct gfs2_revoke *rv; | 156 | struct gfs2_bufdata *bd; |
| 157 | int found = 0; | 157 | int found = 0; |
| 158 | 158 | ||
| 159 | gfs2_log_lock(sdp); | 159 | gfs2_log_lock(sdp); |
| 160 | 160 | ||
| 161 | list_for_each_entry(rv, &sdp->sd_log_le_revoke, rv_le.le_list) { | 161 | list_for_each_entry(bd, &sdp->sd_log_le_revoke, bd_le.le_list) { |
| 162 | if (rv->rv_blkno == blkno) { | 162 | if (bd->bd_blkno == blkno) { |
| 163 | list_del(&rv->rv_le.le_list); | 163 | list_del_init(&bd->bd_le.le_list); |
| 164 | gfs2_assert_withdraw(sdp, sdp->sd_log_num_revoke); | 164 | gfs2_assert_withdraw(sdp, sdp->sd_log_num_revoke); |
| 165 | sdp->sd_log_num_revoke--; | 165 | sdp->sd_log_num_revoke--; |
| 166 | found = 1; | 166 | found = 1; |
| @@ -172,7 +172,7 @@ void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, u64 blkno) | |||
| 172 | 172 | ||
| 173 | if (found) { | 173 | if (found) { |
| 174 | struct gfs2_trans *tr = current->journal_info; | 174 | struct gfs2_trans *tr = current->journal_info; |
| 175 | kfree(rv); | 175 | kmem_cache_free(gfs2_bufdata_cachep, bd); |
| 176 | tr->tr_num_revoke_rm++; | 176 | tr->tr_num_revoke_rm++; |
| 177 | } | 177 | } |
| 178 | } | 178 | } |
