In fc_do_one_pass() miss release buffer head after use which will lead
to reference count leak.
Signed-off-by: Ye Bin <[email protected]>
---
fs/jbd2/recovery.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 1f878c315b03..8286a9ec122f 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -261,6 +261,7 @@ static int fc_do_one_pass(journal_t *journal,
err = journal->j_fc_replay_callback(journal, bh, pass,
next_fc_block - journal->j_fc_first,
expected_commit_id);
+ brelse(bh);
next_fc_block++;
if (err < 0 || err == JBD2_FC_REPLAY_STOP)
break;
--
2.31.1
On Sat 17-09-22 17:38:05, Ye Bin wrote:
> In fc_do_one_pass() miss release buffer head after use which will lead
> to reference count leak.
>
> Signed-off-by: Ye Bin <[email protected]>
Indeed. Good catch! Feel free to add:
Reviewed-by: Jan Kara <[email protected]>
Honza
> ---
> fs/jbd2/recovery.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
> index 1f878c315b03..8286a9ec122f 100644
> --- a/fs/jbd2/recovery.c
> +++ b/fs/jbd2/recovery.c
> @@ -261,6 +261,7 @@ static int fc_do_one_pass(journal_t *journal,
> err = journal->j_fc_replay_callback(journal, bh, pass,
> next_fc_block - journal->j_fc_first,
> expected_commit_id);
> + brelse(bh);
> next_fc_block++;
> if (err < 0 || err == JBD2_FC_REPLAY_STOP)
> break;
> --
> 2.31.1
>
--
Jan Kara <[email protected]>
SUSE Labs, CR
On Sat, 17 Sep 2022 17:38:05 +0800, Ye Bin wrote:
> In fc_do_one_pass() miss release buffer head after use which will lead
> to reference count leak.
>
>
Applied, thanks!
[1/1] jbd2: add miss release buffer head in fc_do_one_pass()
commit: 0f04cd3834a988a9c725fd396e3f88fe334f9f29
Best regards,
--
Theodore Ts'o <[email protected]>