linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: Jaegeuk Kim <jaegeuk@kernel.org>, Chao Yu <chao@kernel.org>
Cc: "Matthew Wilcox \(Oracle\)" <willy@infradead.org>,
	linux-f2fs-devel@lists.sourceforge.net
Subject: [f2fs-dev] [PATCH 12/60] f2fs: Pass a folio to is_recoverable_dnode()
Date: Tue,  8 Jul 2025 18:03:09 +0100	[thread overview]
Message-ID: <20250708170359.111653-13-willy@infradead.org> (raw)
In-Reply-To: <20250708170359.111653-1-willy@infradead.org>

All callers have a folio so pass it in.  Also make the argument const
as the function does not modify it.  Removes a call to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/f2fs.h     |  2 +-
 fs/f2fs/node.h     | 10 +++++-----
 fs/f2fs/recovery.c |  6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 5e443b2ce8db..ae66c40c4b7d 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -2018,7 +2018,7 @@ static inline struct f2fs_sb_info *F2FS_M_SB(struct address_space *mapping)
 	return F2FS_I_SB(mapping->host);
 }
 
-static inline struct f2fs_sb_info *F2FS_F_SB(struct folio *folio)
+static inline struct f2fs_sb_info *F2FS_F_SB(const struct folio *folio)
 {
 	return F2FS_M_SB(folio->mapping);
 }
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h
index c03cc1fdd136..75e03f994847 100644
--- a/fs/f2fs/node.h
+++ b/fs/f2fs/node.h
@@ -262,7 +262,7 @@ static inline unsigned int ofs_of_node(const struct page *node_page)
 	return flag >> OFFSET_BIT_SHIFT;
 }
 
-static inline __u64 cpver_of_node(struct page *node_page)
+static inline __u64 cpver_of_node(const struct page *node_page)
 {
 	struct f2fs_node *rn = F2FS_NODE(node_page);
 	return le64_to_cpu(rn->footer.cp_ver);
@@ -313,19 +313,19 @@ static inline void fill_node_footer_blkaddr(struct page *page, block_t blkaddr)
 	rn->footer.next_blkaddr = cpu_to_le32(blkaddr);
 }
 
-static inline bool is_recoverable_dnode(struct page *page)
+static inline bool is_recoverable_dnode(const struct folio *folio)
 {
-	struct f2fs_checkpoint *ckpt = F2FS_CKPT(F2FS_P_SB(page));
+	struct f2fs_checkpoint *ckpt = F2FS_CKPT(F2FS_F_SB(folio));
 	__u64 cp_ver = cur_cp_version(ckpt);
 
 	/* Don't care crc part, if fsck.f2fs sets it. */
 	if (__is_set_ckpt_flags(ckpt, CP_NOCRC_RECOVERY_FLAG))
-		return (cp_ver << 32) == (cpver_of_node(page) << 32);
+		return (cp_ver << 32) == (cpver_of_node(&folio->page) << 32);
 
 	if (__is_set_ckpt_flags(ckpt, CP_CRC_RECOVERY_FLAG))
 		cp_ver |= (cur_cp_crc(ckpt) << 32);
 
-	return cp_ver == cpver_of_node(page);
+	return cp_ver == cpver_of_node(&folio->page);
 }
 
 /*
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index 224754186096..380055000083 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -375,7 +375,7 @@ static int sanity_check_node_chain(struct f2fs_sb_info *sbi, block_t blkaddr,
 		if (IS_ERR(folio))
 			return PTR_ERR(folio);
 
-		if (!is_recoverable_dnode(&folio->page)) {
+		if (!is_recoverable_dnode(folio)) {
 			f2fs_folio_put(folio, true);
 			*is_detecting = false;
 			return 0;
@@ -424,7 +424,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head,
 			break;
 		}
 
-		if (!is_recoverable_dnode(&folio->page)) {
+		if (!is_recoverable_dnode(folio)) {
 			f2fs_folio_put(folio, true);
 			break;
 		}
@@ -796,7 +796,7 @@ static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list,
 			break;
 		}
 
-		if (!is_recoverable_dnode(&folio->page)) {
+		if (!is_recoverable_dnode(folio)) {
 			f2fs_folio_put(folio, true);
 			break;
 		}
-- 
2.47.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

  parent reply	other threads:[~2025-07-08 17:04 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-08 17:02 [f2fs-dev] [PATCH 00/60] f2fs folio conversions for 6.17 Matthew Wilcox (Oracle)
2025-07-08 17:02 ` [f2fs-dev] [PATCH 01/60] f2fs: Pass a folio to recover_dentry() Matthew Wilcox (Oracle)
2025-07-08 17:02 ` [f2fs-dev] [PATCH 02/60] f2fs: Pass a folio to recover_inode() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 03/60] f2fs: Pass a folio to recover_quota_data() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 04/60] f2fs: Pass a folio to f2fs_recover_inode_page() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 05/60] f2fs: Pass a folio to sanity_check_extent_cache() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 06/60] f2fs: Pass a folio to sanity_check_inode() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 07/60] f2fs: Pass a folio to f2fs_sanity_check_inline_data() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 08/60] f2fs: Pass a folio to inode_has_blocks() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 09/60] f2fs: Pass a folio to F2FS_INODE() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 10/60] f2fs: Pass a folio to ino_of_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 11/60] f2fs: Pass a folio to nid_of_node() Matthew Wilcox (Oracle)
2025-07-09 19:56   ` Jaegeuk Kim via Linux-f2fs-devel
2025-07-08 17:03 ` Matthew Wilcox (Oracle) [this message]
2025-07-08 17:03 ` [f2fs-dev] [PATCH 13/60] f2fs: Pass a folio to set_dentry_mark() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 14/60] f2fs: Pass a folio to set_fsync_mark() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 15/60] f2fs: Pass a folio to set_mark() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 16/60] f2fs: Pass a folio to f2fs_allocate_data_block() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 17/60] f2fs: Pass a folio to f2fs_inode_chksum_set() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 18/60] f2fs: Pass a folio to f2fs_enable_inode_chksum() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 19/60] f2fs: Pass a folio to f2fs_inode_chksum() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 20/60] f2fs: Pass a folio to fill_node_footer_blkaddr() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 21/60] f2fs: Pass a folio to get_nid() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 22/60] f2fs: Pass a folio to set_cold_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 23/60] f2fs: Pass folios to copy_node_footer() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 24/60] f2fs: Pass a folio to fill_node_footer() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 25/60] f2fs: Pass a folio to cpver_of_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 26/60] f2fs: Pass a folio to f2fs_recover_xattr_data() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 27/60] f2fs: Pass a folio to is_fsync_dnode() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 28/60] f2fs: Pass a folio to is_dent_dnode() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 29/60] f2fs: Add fio->folio Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 30/60] f2fs: Use folio_unlock() in f2fs_write_compressed_pages() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 31/60] f2fs: Pass a folio to is_cold_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 32/60] f2fs: Pass a folio to is_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 33/60] f2fs: Pass a folio to IS_DNODE() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 34/60] f2fs: Pass a folio to ofs_of_node() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 35/60] f2fs: Pass a folio to get_dnode_base() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 36/60] f2fs: Pass a folio to ADDRS_PER_PAGE() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 37/60] f2fs: Pass a folio to IS_INODE() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 38/60] f2fs: Add folio counterparts to page_private_flags functions Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 39/60] f2fs: Use a folio in f2fs_is_cp_guaranteed() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 40/60] f2fs: Convert set_page_private_data() to folio_set_f2fs_data() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 41/60] f2fs: Convert get_page_private_data() to folio_get_f2fs_data() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 42/60] f2fs: Pass a folio to f2fs_compress_write_end_io() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 43/60] f2fs: Use a folio in f2fs_merge_page_bio() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 44/60] f2fs: Use a bio in f2fs_submit_page_write() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 45/60] f2fs: Pass a folio to WB_DATA_TYPE() and f2fs_is_cp_guaranteed() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 46/60] f2fs: Use a folio iterator in f2fs_handle_step_decompress() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 47/60] f2fs: Pass a folio to f2fs_end_read_compressed_page() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 48/60] f2fs: Use a folio iterator in f2fs_verify_bio() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 49/60] f2fs: Pass a folio to f2fs_is_compressed_page() Matthew Wilcox (Oracle)
2025-07-22  6:54   ` Chao Yu via Linux-f2fs-devel
2025-07-08 17:03 ` [f2fs-dev] [PATCH 50/60] f2fs: Convert get_next_nat_page() to get_next_nat_folio() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 51/60] f2fs: Pass the nat_blk to __update_nat_bits() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 52/60] f2fs: Pass a folio to F2FS_NODE() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 53/60] f2fs: Pass a folio to f2fs_cache_compressed_page() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 54/60] f2fs: Use a folio in f2fs_encrypted_get_link() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 55/60] f2fs: Use F2FS_F_SB() in f2fs_read_end_io() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 56/60] f2fs: Remove clear_page_private_all() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 57/60] f2fs: Remove use of page from f2fs_write_single_data_page() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 58/60] f2fs: Pass a folio to f2fs_submit_merged_write_cond() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 59/60] f2fs: Pass a folio to __has_merged_page() Matthew Wilcox (Oracle)
2025-07-08 17:03 ` [f2fs-dev] [PATCH 60/60] f2fs: Remove F2FS_P_SB() Matthew Wilcox (Oracle)
2025-07-11 16:20 ` [f2fs-dev] [PATCH 00/60] f2fs folio conversions for 6.17 patchwork-bot+f2fs--- via Linux-f2fs-devel
2025-07-22  7:03 ` Chao Yu via Linux-f2fs-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250708170359.111653-13-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=chao@kernel.org \
    --cc=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).