summaryrefslogtreecommitdiff
path: root/fs/nfs/symlink.c
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-05-15 12:14:34 +0200
committerChristian Brauner <brauner@kernel.org>2025-05-15 12:14:34 +0200
commit76145cb37ff0636fdf2a15320b2c2421915df32b (patch)
treebf8151863888807d23866c8c56f4c9be329f4283 /fs/nfs/symlink.c
parent4fae90d04a58cd9882c5158b6b1d22d0cf544fc0 (diff)
parent4ec373b74e96f92cf273631d31c82ec53727cf02 (diff)
Merge patch series "Use folios for symlinks in the page cache"
Matthew Wilcox (Oracle) <willy@infradead.org> says: FUSE already uses folios for its symlinks. Mirror that conversion in the generic code and the NFS code. That lets us get rid of a few folio->page->folio conversions in this path, and some of the few remaining users of read_cache_page() / read_mapping_page(). * patches from https://lore.kernel.org/20250514171316.3002934-1-willy@infradead.org: fs: Pass a folio to page_put_link() nfs: Use a folio in nfs_get_link() fs: Convert __page_get_link() to use a folio Link: https://lore.kernel.org/20250514171316.3002934-1-willy@infradead.org Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/nfs/symlink.c')
-rw-r--r--fs/nfs/symlink.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c
index 1c62a5a9f51d..58146e935402 100644
--- a/fs/nfs/symlink.c
+++ b/fs/nfs/symlink.c
@@ -40,31 +40,31 @@ static const char *nfs_get_link(struct dentry *dentry,
struct inode *inode,
struct delayed_call *done)
{
- struct page *page;
+ struct folio *folio;
void *err;
if (!dentry) {
err = ERR_PTR(nfs_revalidate_mapping_rcu(inode));
if (err)
return err;
- page = find_get_page(inode->i_mapping, 0);
- if (!page)
+ folio = filemap_get_folio(inode->i_mapping, 0);
+ if (IS_ERR(folio))
return ERR_PTR(-ECHILD);
- if (!PageUptodate(page)) {
- put_page(page);
+ if (!folio_test_uptodate(folio)) {
+ folio_put(folio);
return ERR_PTR(-ECHILD);
}
} else {
err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping));
if (err)
return err;
- page = read_cache_page(&inode->i_data, 0, nfs_symlink_filler,
+ folio = read_cache_folio(&inode->i_data, 0, nfs_symlink_filler,
NULL);
- if (IS_ERR(page))
- return ERR_CAST(page);
+ if (IS_ERR(folio))
+ return ERR_CAST(folio);
}
- set_delayed_call(done, page_put_link, page);
- return page_address(page);
+ set_delayed_call(done, page_put_link, folio);
+ return folio_address(folio);
}
/*