Commit cacc0645 authored by Joanne Koong's avatar Joanne Koong Committed by Miklos Szeredi
Browse files

fuse: support large folios for symlinks



Support large folios for symlinks and change the name from
fuse_getlink_page() to fuse_getlink_folio().

Signed-off-by: default avatarJoanne Koong <joannelkoong@gmail.com>
Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Reviewed-by: default avatarBernd Schubert <bschubert@ddn.com>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent 351a24eb
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1629,10 +1629,10 @@ static int fuse_permission(struct mnt_idmap *idmap,
	return err;
}

static int fuse_readlink_page(struct inode *inode, struct folio *folio)
static int fuse_readlink_folio(struct inode *inode, struct folio *folio)
{
	struct fuse_mount *fm = get_fuse_mount(inode);
	struct fuse_folio_desc desc = { .length = PAGE_SIZE - 1 };
	struct fuse_folio_desc desc = { .length = folio_size(folio) - 1 };
	struct fuse_args_pages ap = {
		.num_folios = 1,
		.folios = &folio,
@@ -1687,7 +1687,7 @@ static const char *fuse_get_link(struct dentry *dentry, struct inode *inode,
	if (!folio)
		goto out_err;

	err = fuse_readlink_page(inode, folio);
	err = fuse_readlink_folio(inode, folio);
	if (err) {
		folio_put(folio);
		goto out_err;
@@ -2288,7 +2288,7 @@ void fuse_init_dir(struct inode *inode)

static int fuse_symlink_read_folio(struct file *null, struct folio *folio)
{
	int err = fuse_readlink_page(folio->mapping->host, folio);
	int err = fuse_readlink_folio(folio->mapping->host, folio);

	if (!err)
		folio_mark_uptodate(folio);