2009-11-10 09:16:25

by Tao Ma

[permalink] [raw]
Subject: [PATCH] JBD/JBD2: free j_wbuf if journal init fails.

If journal init fails, we need to free j_wbuf.

Cc: Andrew Morton <[email protected]>
Cc: Jan Kara <[email protected]>
Signed-off-by: Tao Ma <[email protected]>
---
fs/jbd/journal.c | 2 ++
fs/jbd2/journal.c | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index bd3c073..49d5cd6 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 b0ab521..fed8538 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;
--
1.5.4.4


2009-11-10 21:22:03

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] JBD/JBD2: free j_wbuf if journal init fails.

On Tue 10-11-09 17:13:22, Tao Ma wrote:
> If journal init fails, we need to free j_wbuf.
Thanks, added to my tree.

Honza
>
> Cc: Andrew Morton <[email protected]>
> Cc: Jan Kara <[email protected]>
> Signed-off-by: Tao Ma <[email protected]>
> ---
> fs/jbd/journal.c | 2 ++
> fs/jbd2/journal.c | 2 ++
> 2 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
> index bd3c073..49d5cd6 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 b0ab521..fed8538 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;
> --
> 1.5.4.4
>
--
Jan Kara <[email protected]>
SUSE Labs, CR