summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-11-10 10:13:22 +0100
committerJan Kara <jack@suse.cz>2009-11-11 15:24:14 +0100
commit7b02bec07efe1d6c7d48c786e0c1a38d28fe7245 (patch)
treecb93e26c107052be83ba52a74652c44c3ba199da
parentext3: Wait for proper transaction commit on fsync (diff)
downloadlinux-7b02bec07efe1d6c7d48c786e0c1a38d28fe7245.tar.xz
linux-7b02bec07efe1d6c7d48c786e0c1a38d28fe7245.zip
JBD/JBD2: free j_wbuf if journal init fails.
If journal init fails, we need to free j_wbuf. Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jan Kara <jack@suse.cz> Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to '')
-rw-r--r--fs/jbd/journal.c2
-rw-r--r--fs/jbd2/journal.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index bd3c073b485d..49d5cd6053c8 100644
--- a/fs/jbd/journal.c
+++ b/fs/jbd/journal.c
@@ -756,6 +756,7 @@ journal_t * journal_init_dev(struct block_device *bdev,
return journal;
out_err:
+ kfree(journal->j_wbuf);
kfree(journal);
return NULL;
}
@@ -820,6 +821,7 @@ journal_t * journal_init_inode (struct inode *inode)
return journal;
out_err:
+ kfree(journal->j_wbuf);
kfree(journal);
return NULL;
}
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index b0ab5219becb..fed85388ee86 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -913,6 +913,7 @@ journal_t * jbd2_journal_init_dev(struct block_device *bdev,
return journal;
out_err:
+ kfree(journal->j_wbuf);
jbd2_stats_proc_exit(journal);
kfree(journal);
return NULL;
@@ -986,6 +987,7 @@ journal_t * jbd2_journal_init_inode (struct inode *inode)
return journal;
out_err:
+ kfree(journal->j_wbuf);
jbd2_stats_proc_exit(journal);
kfree(journal);
return NULL;