On 04/28, Chao Yu wrote: > On 4/1/25 04:10, Matthew Wilcox (Oracle) wrote: > > Sorry for the length of this series. Each patch in this series builds, > > but obviously I haven't done any testing. It should be easy to bisect > > to any mistakes I've made. This conversion isn't complete; I estimate > > another 100 or so patches will be needed. > > > > Matthew Wilcox (Oracle) (153): > > f2fs: Use a folio in f2fs_compress_free_page() > > f2fs: Use a folio in f2fs_write_raw_pages() > > f2fs: Introduce fio_inode() > > f2fs: Use F2FS_P_SB() in f2fs_is_compressed_page() > > f2fs: Use bio_for_each_folio_all() in __has_merged_page() > > f2fs: Use a folio in add_ipu_page() > > f2fs: Remove access to page->mapping in f2fs_is_cp_guaranteed() > > f2fs: Use a folio in move_data_block() > > f2fs: Use a folio in f2fs_quota_read() > > f2fs: Add f2fs_grab_meta_folio() > > f2fs: Use a folio in commit_checkpoint() > > f2fs: Convert __f2fs_write_meta_page() to __f2fs_write_meta_folio() > > f2fs: Use f2fs_folio_wait_writeback() > > f2fs: Pass a folio to f2fs_submit_merged_ipu_write() > > f2fs: Convert __get_meta_page() to __get_meta_folio() > > f2fs: Convert f2fs_get_tmp_page() to f2fs_get_tmp_folio() > > f2fs: Pass a folio to next_blkaddr_of_node() > > f2fs: Use a folio in f2fs_ra_meta_pages() > > f2fs: Use a folio in f2fs_ra_meta_pages_cond() > > f2fs: Use a folio in write_orphan_inodes() > > f2fs: Use a folio in get_next_nat_page() > > f2fs: Convert get_next_sit_page() to get_next_sit_folio() > > f2fs: Use a folio in f2fs_update_meta_page() > > f2fs: Use a folio in write_current_sum_page() > > f2fs: Use a folio in write_compacted_summaries() > > f2fs: Remove f2fs_grab_meta_page() > > f2fs: Add f2fs_get_meta_folio() > > f2fs: Use a folio in build_sit_entries() > > f2fs: Use a folio in f2fs_recover_orphan_inodes() > > f2fs: Use a folio in validate_checkpoint() > > f2fs: Use a folio in f2fs_get_valid_checkpoint() > > f2fs: Use a folio in f2fs_get_node_info() > > f2fs: Use a folio in __get_nat_bitmaps() > > f2fs: Use a folio in read_compacted_summaries() > > f2fs: Use a folio in read_normal_summaries() > > f2fs: Remove f2fs_get_meta_page() > > f2fs: Convert f2fs_get_meta_page_retry() to > > f2fs_get_meta_folio_retry() > > f2fs: Pass an address to scan_nat_page() > > f2fs: Add f2fs_get_sum_folio() > > f2fs: Use folios in do_garbage_collect() > > f2fs: Use a folio in check_index_in_prev_nodes() > > f2fs: Use a folio in change_curseg() > > f2fs: Remove f2fs_get_sum_page() > > f2fs: Use a folio in find_in_level() > > f2fs: Use a folio in f2fs_delete_entry() > > f2fs: Use a folio in f2fs_readdir() > > f2fs: Remove f2fs_find_data_page() > > f2fs: Use a folio in f2fs_get_new_data_page() > > f2fs: Use a folio in f2fs_migrate_blocks() > > f2fs: Add f2fs_get_new_data_folio() > > highmem: Add memcpy_folio() > > f2fs: Use a folio in __clone_blkaddrs() > > f2fs: Use a folio in f2fs_defragment_range() > > f2fs: Remove f2fs_get_lock_data_page() > > f2fs: Use a folio in fill_zero() > > f2fs: Use a folio in f2fs_add_regular_entry() > > f2fs: Use a folio in make_empty_dir() > > f2fs: Remove f2fs_get_new_data_page() > > f2fs: Use a folio in f2fs_xattr_fiemap() > > f2fs: Use a folio in ra_data_block() > > f2fs: Use a folio in move_data_block() > > f2fs: Use a folio in f2fs_convert_inline_inode() > > f2fs: Use a folio in f2fs_move_inline_dirents() > > f2fs: Add f2fs_new_node_folio() > > f2fs: Use a folio in f2fs_ra_node_page() > > f2fs: Convert read_node_page() to read_node_folio() > > f2fs: Pass a folio to f2fs_inode_chksum_verify() > > f2fs: Use a folio in f2fs_recover_inode_page() > > f2fs: Remove f2fs_grab_cache_page() > > f2fs: Add f2fs_get_xnode_folio() > > f2fs: Use a folio in write_all_xattrs() > > f2fs: Use a folio in f2fs_recover_xattr_data() > > f2fs: Add f2fs_get_node_folio() > > f2fs: Use folios in f2fs_get_dnode_of_data() > > f2fs: Use a folio in truncate_node() > > f2fs: Use a folio in truncate_nodes() > > f2fs: Use folios in truncate_partial_nodes() > > f2fs: Pass a folio to f2fs_ra_node_pages() > > f2fs: Use a folio in gc_node_segment() > > f2fs: Convert f2fs_move_node_page() to f2fs_move_node_folio() > > f2fs: Convert __write_node_page() to __write_node_folio() > > f2fs: Use a folio in is_alive() > > f2fs: Use a folio in check_index_in_prev_nodes() > > f2fs: Remove f2fs_get_node_page() > > f2fs: Use a folio in prepare_write_begin > > f2fs: Use a folio in __find_data_block() > > f2fs: Use a folio in f2fs_init_inode_metadata() > > f2fs: Pass a folio to make_empty_dir() > > f2fs: Use a folio in f2fs_try_convert_inline_dir() > > f2fs: Use a folio in f2fs_add_inline_entry() > > f2fs: Pass a folio to f2fs_move_inline_dirents() > > f2fs: Pass a folio to f2fs_move_rehashed_dirents() > > f2fs: Use a folio in f2fs_do_truncate_blocks() > > f2fs: Use a folio in f2fs_truncate_xattr_node() > > f2fs: Pass folios to set_new_dnode() > > f2fs: Convert f2fs_convert_inline_page() to > > f2fs_convert_inline_folio() > > f2fs: Use a folio in read_xattr_block() > > f2fs: Remove f2fs_get_xnode_page() > > f2fs: Use a folio in f2fs_write_inline_data() > > f2fs: Use a folio in f2fs_read_inline_data() > > f2fs: Use a folio in f2fs_recover_inline_data() > > f2fs: Use a folio in f2fs_find_in_inline_dir() > > f2fs: Use a folio in f2fs_empty_inline_dir() > > f2fs: Use a folio in f2fs_read_inline_dir() > > f2fs: Use a folio in f2fs_inline_data_fiemap() > > f2fs: Use a folio in f2fs_update_inode_page() > > f2fs: Use a folio in do_read_inode() > > f2fs: Pass folios to f2fs_init_acl() > > f2fs: Pass a folio to f2fs_setxattr() > > f2fs: Pass a folio to __f2fs_setxattr() > > f2fs: Pass a folio to write_all_xattrs() > > f2fs: Use a folio in read_inline_xattr() > > f2fs: Use a folio in f2fs_recover_inline_xattr() > > f2fs: Remove f2fs_get_inode_page() > > f2fs: Pass a folio to f2fs_getxattr() > > f2fs: Pass a folio to read_inline_xattr() > > f2fs: Pass a folio to do_recover_data() > > f2fs: Pass a folio to f2fs_recover_inline_xattr() > > f2fs: Pass a folio to inline_xattr_addr() > > f2fs: Pass a folio to init_dent_inode() > > f2fs: Pass a folio to f2fs_make_empty_inline_dir() > > f2fs: Pass a folio to f2fs_has_enough_room() > > f2fs: Convert dnode_of_data->inode_page to inode_folio > > f2fs: Pass a folio to f2fs_do_read_inline_data() > > f2fs: Pass a folio to f2fs_truncate_inline_inode() > > f2fs: Pass a folio to __f2fs_find_entry() > > f2fs: Pass a folio to f2fs_find_entry() > > f2fs: Pass a folio to f2fs_parent_dir() > > f2fs: Pass a folio to f2fs_delete_entry() > > f2fs: Pass a folio to f2fs_delete_inline_entry() > > f2fs: Pass a folio to f2fs_recover_inline_data() > > f2fs: Pass a folio to __recover_inline_status() > > f2fs: Pass a folio to inline_data_addr() > > f2fs: Convert f2fs_put_page_dic() to f2fs_put_folio_dic() > > f2fs: Pass a folio to f2fs_set_link() > > f2fs: Use a folio in need_inode_page_update() > > f2fs: Use a folio in f2fs_truncate_meta_inode_pages() > > f2fs: Use a folio in f2fs_cache_compressed_page() > > f2fs: Use a folio in prepare_compress_overwrite() > > f2fs: Convert f2fs_load_compressed_page() to > > f2fs_load_compressed_folio() > > f2fs: Use a folio in f2fs_encrypt_one_page() > > f2fs: Use a folio in redirty_blocks() > > f2fs: Use a folio in f2fs_wait_on_block_writeback() > > f2fs: Pass a folio to f2fs_init_read_extent_tree() > > f2fs: Return a folio from f2fs_init_inode_metadata() > > f2fs: Pass a folio to f2fs_update_inode() > > f2fs: Pass a folio to set_nid() > > f2fs: Convert dnode_of_data->node_page to node_folio > > f2fs: Pass a folio to get_dnode_addr() > > f2fs: Convert fsync_node_entry->page to folio > > f2fs: Remove f2fs_new_node_page() > > f2fs: Use a folio in flush_inline_data() > > f2fs: Convert clear_node_page_dirty() to clear_node_folio_dirty() > > Thanks for the work, the patchset looks good to me. > > Reviewed-by: Chao Yu <c...@kernel.org> > > Note that, it needs to clean up f2fs_put_page(, {0,1}) w/ > f2fs_folio_put(, {false,true}), I guess Jaegeuk could help to update > directly in dev-test branch?
Yup, let me resolve them directly. Thanks, > > Thanks, > > > > > fs/f2fs/acl.c | 33 ++- > > fs/f2fs/acl.h | 10 +- > > fs/f2fs/checkpoint.c | 193 +++++++-------- > > fs/f2fs/compress.c | 134 +++++----- > > fs/f2fs/data.c | 208 ++++++++-------- > > fs/f2fs/dir.c | 240 +++++++++--------- > > fs/f2fs/extent_cache.c | 10 +- > > fs/f2fs/f2fs.h | 184 +++++++------- > > fs/f2fs/file.c | 155 ++++++------ > > fs/f2fs/gc.c | 140 ++++++----- > > fs/f2fs/inline.c | 306 +++++++++++------------ > > fs/f2fs/inode.c | 94 +++---- > > fs/f2fs/namei.c | 112 ++++----- > > fs/f2fs/node.c | 526 ++++++++++++++++++++-------------------- > > fs/f2fs/node.h | 12 +- > > fs/f2fs/recovery.c | 178 +++++++------- > > fs/f2fs/segment.c | 147 ++++++----- > > fs/f2fs/segment.h | 6 +- > > fs/f2fs/super.c | 36 ++- > > fs/f2fs/xattr.c | 116 ++++----- > > fs/f2fs/xattr.h | 24 +- > > include/linux/highmem.h | 27 +++ > > 22 files changed, 1444 insertions(+), 1447 deletions(-) > > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel