Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

f2fs: Pass a folio to set_nid()

All callers have a folio, so pass it in. Removes two 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>

authored by

Matthew Wilcox (Oracle) and committed by
Jaegeuk Kim
66bca01b f9237928

+9 -9
+5 -5
fs/f2fs/node.c
··· 818 818 goto release_pages; 819 819 } 820 820 821 - set_nid(&parent->page, offset[i - 1], nids[i], i == 1); 821 + set_nid(parent, offset[i - 1], nids[i], i == 1); 822 822 f2fs_alloc_nid_done(sbi, nids[i]); 823 823 done = true; 824 824 } else if (mode == LOOKUP_NODE_RA && i == level && level > 1) { ··· 1017 1017 ret = truncate_dnode(&rdn); 1018 1018 if (ret < 0) 1019 1019 goto out_err; 1020 - if (set_nid(&folio->page, i, 0, false)) 1020 + if (set_nid(folio, i, 0, false)) 1021 1021 dn->node_changed = true; 1022 1022 } 1023 1023 } else { ··· 1031 1031 rdn.nid = child_nid; 1032 1032 ret = truncate_nodes(&rdn, child_nofs, 0, depth - 1); 1033 1033 if (ret == (NIDS_PER_BLOCK + 1)) { 1034 - if (set_nid(&folio->page, i, 0, false)) 1034 + if (set_nid(folio, i, 0, false)) 1035 1035 dn->node_changed = true; 1036 1036 child_nofs += ret; 1037 1037 } else if (ret < 0 && ret != -ENOENT) { ··· 1097 1097 err = truncate_dnode(dn); 1098 1098 if (err < 0) 1099 1099 goto fail; 1100 - if (set_nid(&folios[idx]->page, i, 0, false)) 1100 + if (set_nid(folios[idx], i, 0, false)) 1101 1101 dn->node_changed = true; 1102 1102 } 1103 1103 ··· 1223 1223 if (offset[1] == 0 && get_nid(&folio->page, offset[0], true)) { 1224 1224 folio_lock(folio); 1225 1225 BUG_ON(folio->mapping != NODE_MAPPING(sbi)); 1226 - set_nid(&folio->page, offset[0], 0, true); 1226 + set_nid(folio, offset[0], 0, true); 1227 1227 folio_unlock(folio); 1228 1228 } 1229 1229 offset[1] = 0;
+4 -4
fs/f2fs/node.h
··· 367 367 return true; 368 368 } 369 369 370 - static inline int set_nid(struct page *p, int off, nid_t nid, bool i) 370 + static inline int set_nid(struct folio *folio, int off, nid_t nid, bool i) 371 371 { 372 - struct f2fs_node *rn = F2FS_NODE(p); 372 + struct f2fs_node *rn = F2FS_NODE(&folio->page); 373 373 374 - f2fs_wait_on_page_writeback(p, NODE, true, true); 374 + f2fs_folio_wait_writeback(folio, NODE, true, true); 375 375 376 376 if (i) 377 377 rn->i.i_nid[off - NODE_DIR1_BLOCK] = cpu_to_le32(nid); 378 378 else 379 379 rn->in.nid[off] = cpu_to_le32(nid); 380 - return set_page_dirty(p); 380 + return folio_mark_dirty(folio); 381 381 } 382 382 383 383 static inline nid_t get_nid(struct page *p, int off, bool i)