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

fuse: support large folios for queued writes



Add support for folios larger than one page size for queued writes.

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 c91440c8
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1789,11 +1789,14 @@ __releases(fi->lock)
__acquires(fi->lock)
{
	struct fuse_inode *fi = get_fuse_inode(wpa->inode);
	struct fuse_args_pages *ap = &wpa->ia.ap;
	struct fuse_write_in *inarg = &wpa->ia.write.in;
	struct fuse_args *args = &wpa->ia.ap.args;
	/* Currently, all folios in FUSE are one page */
	__u64 data_size = wpa->ia.ap.num_folios * PAGE_SIZE;
	int err;
	struct fuse_args *args = &ap->args;
	__u64 data_size = 0;
	int err, i;

	for (i = 0; i < ap->num_folios; i++)
		data_size += ap->descs[i].length;

	fi->writectr++;
	if (inarg->offset + data_size <= size) {