f2fs: Pass a folio to inline_data_addr()

All callers now have a folio, so pass it in.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2025-03-31 21:12:33 +01:00 committed by Jaegeuk Kim
parent 1834406c98
commit d79bc8ab44
4 changed files with 17 additions and 17 deletions

View File

@ -629,7 +629,7 @@ bool f2fs_has_enough_room(struct inode *dir, struct folio *ifolio,
unsigned int bit_pos; unsigned int bit_pos;
int slots = GET_DENTRY_SLOTS(fname->disk_name.len); int slots = GET_DENTRY_SLOTS(fname->disk_name.len);
make_dentry_ptr_inline(dir, &d, inline_data_addr(dir, &ifolio->page)); make_dentry_ptr_inline(dir, &d, inline_data_addr(dir, ifolio));
bit_pos = f2fs_room_for_filename(d.bitmap, slots, d.max); bit_pos = f2fs_room_for_filename(d.bitmap, slots, d.max);

View File

@ -3397,9 +3397,9 @@ static inline bool f2fs_is_cow_file(struct inode *inode)
return is_inode_flag_set(inode, FI_COW_FILE); return is_inode_flag_set(inode, FI_COW_FILE);
} }
static inline void *inline_data_addr(struct inode *inode, struct page *page) static inline void *inline_data_addr(struct inode *inode, struct folio *folio)
{ {
__le32 *addr = get_dnode_addr(inode, page); __le32 *addr = get_dnode_addr(inode, &folio->page);
return (void *)(addr + DEF_INLINE_RESERVED_SIZE); return (void *)(addr + DEF_INLINE_RESERVED_SIZE);
} }

View File

@ -91,7 +91,7 @@ void f2fs_do_read_inline_data(struct folio *folio, struct folio *ifolio)
folio_zero_segment(folio, MAX_INLINE_DATA(inode), folio_size(folio)); folio_zero_segment(folio, MAX_INLINE_DATA(inode), folio_size(folio));
/* Copy the whole inline data block */ /* Copy the whole inline data block */
memcpy_to_folio(folio, 0, inline_data_addr(inode, &ifolio->page), memcpy_to_folio(folio, 0, inline_data_addr(inode, ifolio),
MAX_INLINE_DATA(inode)); MAX_INLINE_DATA(inode));
if (!folio_test_uptodate(folio)) if (!folio_test_uptodate(folio))
folio_mark_uptodate(folio); folio_mark_uptodate(folio);
@ -105,7 +105,7 @@ void f2fs_truncate_inline_inode(struct inode *inode, struct folio *ifolio,
if (from >= MAX_INLINE_DATA(inode)) if (from >= MAX_INLINE_DATA(inode))
return; return;
addr = inline_data_addr(inode, &ifolio->page); addr = inline_data_addr(inode, ifolio);
f2fs_folio_wait_writeback(ifolio, NODE, true, true); f2fs_folio_wait_writeback(ifolio, NODE, true, true);
memset(addr + from, 0, MAX_INLINE_DATA(inode) - from); memset(addr + from, 0, MAX_INLINE_DATA(inode) - from);
@ -277,7 +277,7 @@ int f2fs_write_inline_data(struct inode *inode, struct folio *folio)
f2fs_bug_on(F2FS_I_SB(inode), folio->index); f2fs_bug_on(F2FS_I_SB(inode), folio->index);
f2fs_folio_wait_writeback(ifolio, NODE, true, true); f2fs_folio_wait_writeback(ifolio, NODE, true, true);
memcpy_from_folio(inline_data_addr(inode, &ifolio->page), memcpy_from_folio(inline_data_addr(inode, ifolio),
folio, 0, MAX_INLINE_DATA(inode)); folio, 0, MAX_INLINE_DATA(inode));
folio_mark_dirty(ifolio); folio_mark_dirty(ifolio);
@ -318,8 +318,8 @@ int f2fs_recover_inline_data(struct inode *inode, struct folio *nfolio)
f2fs_folio_wait_writeback(ifolio, NODE, true, true); f2fs_folio_wait_writeback(ifolio, NODE, true, true);
src_addr = inline_data_addr(inode, &nfolio->page); src_addr = inline_data_addr(inode, nfolio);
dst_addr = inline_data_addr(inode, &ifolio->page); dst_addr = inline_data_addr(inode, ifolio);
memcpy(dst_addr, src_addr, MAX_INLINE_DATA(inode)); memcpy(dst_addr, src_addr, MAX_INLINE_DATA(inode));
set_inode_flag(inode, FI_INLINE_DATA); set_inode_flag(inode, FI_INLINE_DATA);
@ -367,7 +367,7 @@ struct f2fs_dir_entry *f2fs_find_in_inline_dir(struct inode *dir,
return NULL; return NULL;
} }
inline_dentry = inline_data_addr(dir, &ifolio->page); inline_dentry = inline_data_addr(dir, ifolio);
make_dentry_ptr_inline(dir, &d, inline_dentry); make_dentry_ptr_inline(dir, &d, inline_dentry);
de = f2fs_find_target_dentry(&d, fname, NULL, use_hash); de = f2fs_find_target_dentry(&d, fname, NULL, use_hash);
@ -390,7 +390,7 @@ int f2fs_make_empty_inline_dir(struct inode *inode, struct inode *parent,
struct f2fs_dentry_ptr d; struct f2fs_dentry_ptr d;
void *inline_dentry; void *inline_dentry;
inline_dentry = inline_data_addr(inode, &ifolio->page); inline_dentry = inline_data_addr(inode, ifolio);
make_dentry_ptr_inline(inode, &d, inline_dentry); make_dentry_ptr_inline(inode, &d, inline_dentry);
f2fs_do_make_empty_dir(inode, parent, &d); f2fs_do_make_empty_dir(inode, parent, &d);
@ -620,7 +620,7 @@ int f2fs_try_convert_inline_dir(struct inode *dir, struct dentry *dentry)
goto out_fname; goto out_fname;
} }
inline_dentry = inline_data_addr(dir, &ifolio->page); inline_dentry = inline_data_addr(dir, ifolio);
err = do_convert_inline_dir(dir, ifolio, inline_dentry); err = do_convert_inline_dir(dir, ifolio, inline_dentry);
if (!err) if (!err)
@ -648,7 +648,7 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
if (IS_ERR(ifolio)) if (IS_ERR(ifolio))
return PTR_ERR(ifolio); return PTR_ERR(ifolio);
inline_dentry = inline_data_addr(dir, &ifolio->page); inline_dentry = inline_data_addr(dir, ifolio);
make_dentry_ptr_inline(dir, &d, inline_dentry); make_dentry_ptr_inline(dir, &d, inline_dentry);
bit_pos = f2fs_room_for_filename(d.bitmap, slots, d.max); bit_pos = f2fs_room_for_filename(d.bitmap, slots, d.max);
@ -709,7 +709,7 @@ void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry,
folio_lock(folio); folio_lock(folio);
f2fs_folio_wait_writeback(folio, NODE, true, true); f2fs_folio_wait_writeback(folio, NODE, true, true);
inline_dentry = inline_data_addr(dir, &folio->page); inline_dentry = inline_data_addr(dir, folio);
make_dentry_ptr_inline(dir, &d, inline_dentry); make_dentry_ptr_inline(dir, &d, inline_dentry);
bit_pos = dentry - d.dentry; bit_pos = dentry - d.dentry;
@ -738,7 +738,7 @@ bool f2fs_empty_inline_dir(struct inode *dir)
if (IS_ERR(ifolio)) if (IS_ERR(ifolio))
return false; return false;
inline_dentry = inline_data_addr(dir, &ifolio->page); inline_dentry = inline_data_addr(dir, ifolio);
make_dentry_ptr_inline(dir, &d, inline_dentry); make_dentry_ptr_inline(dir, &d, inline_dentry);
bit_pos = find_next_bit_le(d.bitmap, d.max, bit_pos); bit_pos = find_next_bit_le(d.bitmap, d.max, bit_pos);
@ -775,7 +775,7 @@ int f2fs_read_inline_dir(struct file *file, struct dir_context *ctx,
*/ */
folio_unlock(ifolio); folio_unlock(ifolio);
inline_dentry = inline_data_addr(inode, &ifolio->page); inline_dentry = inline_data_addr(inode, ifolio);
make_dentry_ptr_inline(inode, &d, inline_dentry); make_dentry_ptr_inline(inode, &d, inline_dentry);
@ -824,7 +824,7 @@ int f2fs_inline_data_fiemap(struct inode *inode,
goto out; goto out;
byteaddr = (__u64)ni.blk_addr << inode->i_sb->s_blocksize_bits; byteaddr = (__u64)ni.blk_addr << inode->i_sb->s_blocksize_bits;
byteaddr += (char *)inline_data_addr(inode, &ifolio->page) - byteaddr += (char *)inline_data_addr(inode, ifolio) -
(char *)F2FS_INODE(&ifolio->page); (char *)F2FS_INODE(&ifolio->page);
err = fiemap_fill_next_extent(fieinfo, start, byteaddr, ilen, flags); err = fiemap_fill_next_extent(fieinfo, start, byteaddr, ilen, flags);
trace_f2fs_fiemap(inode, start, byteaddr, ilen, flags, err); trace_f2fs_fiemap(inode, start, byteaddr, ilen, flags, err);

View File

@ -99,7 +99,7 @@ static void __set_inode_rdev(struct inode *inode, struct page *node_page)
static void __recover_inline_status(struct inode *inode, struct folio *ifolio) static void __recover_inline_status(struct inode *inode, struct folio *ifolio)
{ {
void *inline_data = inline_data_addr(inode, &ifolio->page); void *inline_data = inline_data_addr(inode, ifolio);
__le32 *start = inline_data; __le32 *start = inline_data;
__le32 *end = start + MAX_INLINE_DATA(inode) / sizeof(__le32); __le32 *end = start + MAX_INLINE_DATA(inode) / sizeof(__le32);