Re: [f2fs-dev] [PATCH] f2fs: avoid f2fs_map_blocks() for consecutive holes in readpages

From: Chao Yu

Date: Mon Jan 19 2026 - 08:44:54 EST


On 1/19/2026 3:43 PM, Nanzhe Zhao wrote:
Hi Chao:
At 2026-01-16 16:52:02, "Chao Yu" <chao@xxxxxxxxxx> wrote:

Do we have plans to also support reducing f2fs_map_blocks() calls for
consectives holes in logical file postion with dnode have already been
allocated in buffered large folio read?
Such as consective NULL_ADDR or NEW_ADDR?

Nanzhe,

We have supported that for large folio read w/ this patch?

Thanks,


Sorry, I'm a bit confused.
In the condition of F2FS_MAP_BLOCK_DEFAULT, the default: case will only
set map->m_next_pgofs to pgofs + 1 then sync out. When we enter
next iteration and the index advanced, currrent index now turns to pgofs + 1
and index < next_pgofs become false.In consequence, we won't reduce
f2fs_map_blocks() calls for hole with dnode allocated.

Also, for NEW_ADDR, the default: case will directly go to sync out and bypass
map_is_mergeable, so it will also not reduce f2fs_map_blocks calls.

Or am I missing something?

I guess f2fs_map_no_dnode() will update map->m_next_pgofs to pgofs of next
potential valid dnode.

Thanks,


Thanks,
Nanzhe Zhao