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