2022-12-23 00:51:22

by Jaegeuk Kim

[permalink] [raw]
Subject: [PATCH] f2fs: let's avoid panic if extent_tree is not created

This patch avoids the below panic.

pc : __lookup_extent_tree+0xd8/0x760
lr : f2fs_do_write_data_page+0x104/0x87c
sp : ffffffc010cbb3c0
x29: ffffffc010cbb3e0 x28: 0000000000000000
x27: ffffff8803e7f020 x26: ffffff8803e7ed40
x25: ffffff8803e7f020 x24: ffffffc010cbb460
x23: ffffffc010cbb480 x22: 0000000000000000
x21: 0000000000000000 x20: ffffffff22e90900
x19: 0000000000000000 x18: ffffffc010c5d080
x17: 0000000000000000 x16: 0000000000000020
x15: ffffffdb1acdbb88 x14: ffffff888759e2b0
x13: 0000000000000000 x12: ffffff802da49000
x11: 000000000a001200 x10: ffffff8803e7ed40
x9 : ffffff8023195800 x8 : ffffff802da49078
x7 : 0000000000000001 x6 : 0000000000000000
x5 : 0000000000000006 x4 : ffffffc010cbba28
x3 : 0000000000000000 x2 : ffffffc010cbb480
x1 : 0000000000000000 x0 : ffffff8803e7ed40
Call trace:
__lookup_extent_tree+0xd8/0x760
f2fs_do_write_data_page+0x104/0x87c
f2fs_write_single_data_page+0x420/0xb60
f2fs_write_cache_pages+0x418/0xb1c
__f2fs_write_data_pages+0x428/0x58c
f2fs_write_data_pages+0x30/0x40
do_writepages+0x88/0x190
__writeback_single_inode+0x48/0x448
writeback_sb_inodes+0x468/0x9e8
__writeback_inodes_wb+0xb8/0x2a4
wb_writeback+0x33c/0x740
wb_do_writeback+0x2b4/0x400
wb_workfn+0xe4/0x34c
process_one_work+0x24c/0x5bc
worker_thread+0x3e8/0xa50
kthread+0x150/0x1b4

Signed-off-by: Jaegeuk Kim <[email protected]>
---
fs/f2fs/extent_cache.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/extent_cache.c b/fs/f2fs/extent_cache.c
index a510fa57a823..1daf8c88c09b 100644
--- a/fs/f2fs/extent_cache.c
+++ b/fs/f2fs/extent_cache.c
@@ -546,7 +546,8 @@ static bool __lookup_extent_tree(struct inode *inode, pgoff_t pgofs,
struct extent_node *en;
bool ret = false;

- f2fs_bug_on(sbi, !et);
+ if (!et)
+ return false;

trace_f2fs_lookup_extent_tree_start(inode, pgofs, type);

--
2.39.0.314.g84b9a713c41-goog


2023-01-03 19:16:24

by patchwork-bot+f2fs

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH] f2fs: let's avoid panic if extent_tree is not created

Hello:

This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <[email protected]>:

On Thu, 22 Dec 2022 15:54:58 -0800 you wrote:
> This patch avoids the below panic.
>
> pc : __lookup_extent_tree+0xd8/0x760
> lr : f2fs_do_write_data_page+0x104/0x87c
> sp : ffffffc010cbb3c0
> x29: ffffffc010cbb3e0 x28: 0000000000000000
> x27: ffffff8803e7f020 x26: ffffff8803e7ed40
> x25: ffffff8803e7f020 x24: ffffffc010cbb460
> x23: ffffffc010cbb480 x22: 0000000000000000
> x21: 0000000000000000 x20: ffffffff22e90900
> x19: 0000000000000000 x18: ffffffc010c5d080
> x17: 0000000000000000 x16: 0000000000000020
> x15: ffffffdb1acdbb88 x14: ffffff888759e2b0
> x13: 0000000000000000 x12: ffffff802da49000
> x11: 000000000a001200 x10: ffffff8803e7ed40
> x9 : ffffff8023195800 x8 : ffffff802da49078
> x7 : 0000000000000001 x6 : 0000000000000000
> x5 : 0000000000000006 x4 : ffffffc010cbba28
> x3 : 0000000000000000 x2 : ffffffc010cbb480
> x1 : 0000000000000000 x0 : ffffff8803e7ed40
> Call trace:
> __lookup_extent_tree+0xd8/0x760
> f2fs_do_write_data_page+0x104/0x87c
> f2fs_write_single_data_page+0x420/0xb60
> f2fs_write_cache_pages+0x418/0xb1c
> __f2fs_write_data_pages+0x428/0x58c
> f2fs_write_data_pages+0x30/0x40
> do_writepages+0x88/0x190
> __writeback_single_inode+0x48/0x448
> writeback_sb_inodes+0x468/0x9e8
> __writeback_inodes_wb+0xb8/0x2a4
> wb_writeback+0x33c/0x740
> wb_do_writeback+0x2b4/0x400
> wb_workfn+0xe4/0x34c
> process_one_work+0x24c/0x5bc
> worker_thread+0x3e8/0xa50
> kthread+0x150/0x1b4
>
> [...]

Here is the summary with links:
- [f2fs-dev] f2fs: let's avoid panic if extent_tree is not created
https://git.kernel.org/jaegeux/f2fs/c/df9d44b645b8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html