diff mbox series

[f2fs-dev] f2fs: let's avoid panic if extent_tree is not created

Message ID 20221222235458.957816-1-jaegeuk@kernel.org (mailing list archive)
State Accepted
Commit df9d44b645b83fffccfb4e28c1f93376585fdec8
Headers show
Series [f2fs-dev] f2fs: let's avoid panic if extent_tree is not created | expand

Commit Message

Jaegeuk Kim Dec. 22, 2022, 11:54 p.m. UTC
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 <jaegeuk@kernel.org>
---
 fs/f2fs/extent_cache.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

patchwork-bot+f2fs@kernel.org Jan. 3, 2023, 6:50 p.m. UTC | #1
Hello:

This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <jaegeuk@kernel.org>:

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!
diff mbox series

Patch

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);