Skip to contentSkip to conversation

fs/jbd: set pointer = NULL, after kfree it.

PATCH In review Chen Gang 2 participants 2 messages Dec 24, 2012 – Dec 31, 2012

lore
Share & tools
lore

Chen Gang

author
#0 lore raw

PATCH 1/1 fs/jbd: set pointer = NULL, after kfree it.

set pointer = NULL, after call journal_destroy_revoke_table.
in journal_destroy_revoke_table, it will call kfree to free the buffer.

---
 fs/jbd/revoke.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
fs/jbd/revoke.c +7 -2
index 25c713e..d6457b0 100644
@@ -295,6 +295,7 @@ int journal_init_revoke(journal_t *journal, int hash_size)
 
 fail1:
 	journal_destroy_revoke_table(journal->j_revoke_table[0]);
+	journal->j_revoke_table[0] = NULL;
 fail0:
 	return -ENOMEM;
 }
@@ -303,10 +304,14 @@ fail0:
 void journal_destroy_revoke(journal_t *journal)
 {
 	journal->j_revoke = NULL;
-	if (journal->j_revoke_table[0])
+	if (journal->j_revoke_table[0]) {
 		journal_destroy_revoke_table(journal->j_revoke_table[0]);
-	if (journal->j_revoke_table[1])
+		journal->j_revoke_table[0] = NULL;
+	}
+	if (journal->j_revoke_table[1]) {
 		journal_destroy_revoke_table(journal->j_revoke_table[1]);
+		journal->j_revoke_table[1] = NULL;
+	}
 }
 
 
Signature · 1 line
1.7.10.4
#1 lore raw
Quoted 3 lines · Chen Gang

set pointer = NULL, after call journal_destroy_revoke_table.
in journal_destroy_revoke_table, it will call kfree to free the buffer.

The journal structure will get freed immediately after we return from
journal_init_revoke() (in case it failed) or journal_destroy_revoke() so I don't see a point in setting the pointers to NULL. Or do I miss something?

Honza

Quoted 37 lines
---
 fs/jbd/revoke.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
fs/jbd/revoke.c +7 -2
index 25c713e..d6457b0 100644
@@ -295,6 +295,7 @@ int journal_init_revoke(journal_t *journal, int hash_size)
 
 fail1:
 	journal_destroy_revoke_table(journal->j_revoke_table[0]);
+	journal->j_revoke_table[0] = NULL;
 fail0:
 	return -ENOMEM;
 }
@@ -303,10 +304,14 @@ fail0:
 void journal_destroy_revoke(journal_t *journal)
 {
 	journal->j_revoke = NULL;
-	if (journal->j_revoke_table[0])
+	if (journal->j_revoke_table[0]) {
 		journal_destroy_revoke_table(journal->j_revoke_table[0]);
-	if (journal->j_revoke_table[1])
+		journal->j_revoke_table[0] = NULL;
+	}
+	if (journal->j_revoke_table[1]) {
 		journal_destroy_revoke_table(journal->j_revoke_table[1]);
+		journal->j_revoke_table[1] = NULL;
+	}
 }
 
 
Signature · 1 line
1.7.10.4
Signature · 2 lines
Jan Kara <[email protected]>
SUSE Labs, CR