mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
f2fs: Pass a folio to f2fs_inode_chksum_verify()
Both callers now have a folio, so pass it in. Removes three calls to compound_head(). 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:
parent
f0fac66fe9
commit
7c213e98c7
|
|
@ -3611,7 +3611,7 @@ int f2fs_pin_file_control(struct inode *inode, bool inc);
|
|||
* inode.c
|
||||
*/
|
||||
void f2fs_set_inode_flags(struct inode *inode);
|
||||
bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page);
|
||||
bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct folio *folio);
|
||||
void f2fs_inode_chksum_set(struct f2fs_sb_info *sbi, struct page *page);
|
||||
struct inode *f2fs_iget(struct super_block *sb, unsigned long ino);
|
||||
struct inode *f2fs_iget_retry(struct super_block *sb, unsigned long ino);
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ static __u32 f2fs_inode_chksum(struct f2fs_sb_info *sbi, struct page *page)
|
|||
return chksum;
|
||||
}
|
||||
|
||||
bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page)
|
||||
bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct folio *folio)
|
||||
{
|
||||
struct f2fs_inode *ri;
|
||||
__u32 provided, calculated;
|
||||
|
|
@ -165,21 +165,21 @@ bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page)
|
|||
return true;
|
||||
|
||||
#ifdef CONFIG_F2FS_CHECK_FS
|
||||
if (!f2fs_enable_inode_chksum(sbi, page))
|
||||
if (!f2fs_enable_inode_chksum(sbi, &folio->page))
|
||||
#else
|
||||
if (!f2fs_enable_inode_chksum(sbi, page) ||
|
||||
PageDirty(page) ||
|
||||
folio_test_writeback(page_folio(page)))
|
||||
if (!f2fs_enable_inode_chksum(sbi, &folio->page) ||
|
||||
folio_test_dirty(folio) ||
|
||||
folio_test_writeback(folio))
|
||||
#endif
|
||||
return true;
|
||||
|
||||
ri = &F2FS_NODE(page)->i;
|
||||
ri = &F2FS_NODE(&folio->page)->i;
|
||||
provided = le32_to_cpu(ri->i_inode_checksum);
|
||||
calculated = f2fs_inode_chksum(sbi, page);
|
||||
calculated = f2fs_inode_chksum(sbi, &folio->page);
|
||||
|
||||
if (provided != calculated)
|
||||
f2fs_warn(sbi, "checksum invalid, nid = %lu, ino_of_node = %x, %x vs. %x",
|
||||
page_folio(page)->index, ino_of_node(page),
|
||||
folio->index, ino_of_node(&folio->page),
|
||||
provided, calculated);
|
||||
|
||||
return provided == calculated;
|
||||
|
|
|
|||
|
|
@ -1403,7 +1403,7 @@ static int read_node_folio(struct folio *folio, blk_opf_t op_flags)
|
|||
int err;
|
||||
|
||||
if (folio_test_uptodate(folio)) {
|
||||
if (!f2fs_inode_chksum_verify(sbi, &folio->page)) {
|
||||
if (!f2fs_inode_chksum_verify(sbi, folio)) {
|
||||
folio_clear_uptodate(folio);
|
||||
return -EFSBADCRC;
|
||||
}
|
||||
|
|
@ -1515,7 +1515,7 @@ static struct folio *__get_node_folio(struct f2fs_sb_info *sbi, pgoff_t nid,
|
|||
goto out_err;
|
||||
}
|
||||
|
||||
if (!f2fs_inode_chksum_verify(sbi, &folio->page)) {
|
||||
if (!f2fs_inode_chksum_verify(sbi, folio)) {
|
||||
err = -EFSBADCRC;
|
||||
goto out_err;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user