diff mbox series

[-next] jbd2: add miss release buffer head in fc_do_one_pass()

Message ID 20220917093805.1782845-1-yebin10@huawei.com
State Awaiting Upstream
Headers show
Series [-next] jbd2: add miss release buffer head in fc_do_one_pass() | expand

Commit Message

yebin (H) Sept. 17, 2022, 9:38 a.m. UTC
In fc_do_one_pass() miss release buffer head after use which will lead
to reference count leak.

Signed-off-by: Ye Bin <yebin10@huawei.com>
---
 fs/jbd2/recovery.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jan Kara Sept. 19, 2022, 12:43 p.m. UTC | #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 <yebin10@huawei.com>

Indeed. Good catch! Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								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
>
Theodore Ts'o Sept. 30, 2022, 3:19 a.m. UTC | #2
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,
diff mbox series

Patch

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;