projects
/
lwext4.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
321eba3
)
ext4_journal: fix memory leakage when revoking a block repeatedly
author
Kaho Ng
<ngkaho1234@gmail.com>
Tue, 28 Jun 2016 09:18:52 +0000
(17:18 +0800)
committer
Kaho Ng
<ngkaho1234@gmail.com>
Tue, 28 Jun 2016 15:03:31 +0000
(23:03 +0800)
src/ext4_journal.c
patch
|
blob
|
history
diff --git
a/src/ext4_journal.c
b/src/ext4_journal.c
index 1f70c8194dd6b2fa5cc9e14dc998e5b06673b385..01a8c0860210bdc6f6fe4374c58b9c2bd7b92aed 100644
(file)
--- a/
src/ext4_journal.c
+++ b/
src/ext4_journal.c
@@
-1656,8
+1656,16
@@
int jbd_trans_set_block_dirty(struct jbd_trans *trans,
int jbd_trans_revoke_block(struct jbd_trans *trans,
ext4_fsblk_t lba)
{
- struct jbd_revoke_rec *rec =
- calloc(1, sizeof(struct jbd_revoke_rec));
+ struct jbd_revoke_rec tmp_rec = {
+ .lba = lba
+ }, *rec;
+ rec = RB_FIND(jbd_revoke_tree,
+ &trans->revoke_root,
+ &tmp_rec);
+ if (rec)
+ return EOK;
+
+ rec = calloc(1, sizeof(struct jbd_revoke_rec));
if (!rec)
return ENOMEM;