Commit eb640af6 authored by Kemeng Shi's avatar Kemeng Shi Committed by Theodore Ts'o
Browse files

ext4: add missing brelse() for bh2 in ext4_dx_add_entry()



Add missing brelse() for bh2 in ext4_dx_add_entry().

Fixes: ac27a0ec ("[PATCH] ext4: initial copy of files from ext3")
Signed-off-by: default avatarKemeng Shi <shikemeng@huaweicloud.com>
Reviewed-by: default avatarOjaswin Mujoo <ojaswin@linux.ibm.com>
Reviewed-by: default avatarZhang Yi <yi.zhang@huawei.com>
Link: https://patch.msgid.link/20250123162050.2114499-2-shikemeng@huaweicloud.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent fd3b3d7f
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -2583,8 +2583,10 @@ static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
		BUFFER_TRACE(frame->bh, "get_write_access");
		err = ext4_journal_get_write_access(handle, sb, frame->bh,
						    EXT4_JTR_NONE);
		if (err)
		if (err) {
			brelse(bh2);
			goto journal_error;
		}
		if (!add_level) {
			unsigned icount1 = icount/2, icount2 = icount - icount1;
			unsigned hash2 = dx_get_hash(entries + icount1);
@@ -2595,8 +2597,10 @@ static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
			err = ext4_journal_get_write_access(handle, sb,
							    (frame - 1)->bh,
							    EXT4_JTR_NONE);
			if (err)
			if (err) {
				brelse(bh2);
				goto journal_error;
			}

			memcpy((char *) entries2, (char *) (entries + icount1),
			       icount2 * sizeof(struct dx_entry));
@@ -2615,8 +2619,10 @@ static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
			dxtrace(dx_show_index("node",
			       ((struct dx_node *) bh2->b_data)->entries));
			err = ext4_handle_dirty_dx_node(handle, dir, bh2);
			if (err)
			if (err) {
				brelse(bh2);
				goto journal_error;
			}
			brelse (bh2);
			err = ext4_handle_dirty_dx_node(handle, dir,
						   (frame - 1)->bh);
@@ -2641,8 +2647,10 @@ static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
				       "Creating %d level index...\n",
				       dxroot->info.indirect_levels));
			err = ext4_handle_dirty_dx_node(handle, dir, frame->bh);
			if (err)
			if (err) {
				brelse(bh2);
				goto journal_error;
			}
			err = ext4_handle_dirty_dx_node(handle, dir, bh2);
			brelse(bh2);
			restart = 1;