• Chao Yu's avatar
    f2fs: introduce get_next_page_offset to speed up SEEK_DATA · 3cf45747
    Chao Yu authored
    When seeking data in ->llseek, if we encounter a big hole which covers
    several dnode pages, we will try to seek data from index of page which
    is the first page of next dnode page, at most we could skip searching
    (ADDRS_PER_BLOCK - 1) pages.
    
    However it's still not efficient, because if our indirect/double-indirect
    pointer are NULL, there are no dnode page locate in the tree indirect/
    double-indirect pointer point to, it's not necessary to search the whole
    region.
    
    This patch introduces get_next_page_offset to calculate next page offset
    based on current searching level and max searching level returned from
    get_dnode_of_data, with this, we could skip searching the entire area
    indirect or double-indirect node block is not exist.
    Signed-off-by: default avatarChao Yu <chao2.yu@samsung.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    3cf45747
file.c 44.4 KB