On 4/26/25 02:08, Joanne Koong wrote: > Add support for folios larger than one page size for queued writes. > > Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx> > Reviewed-by: Josef Bacik <josef@xxxxxxxxxxxxxx> > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx> Reviewed-by: Bernd Schubert <bschubert@xxxxxxx> > --- > fs/fuse/file.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/fs/fuse/file.c b/fs/fuse/file.c > index 0ca3b31c59f9..1d38486fae50 100644 > --- a/fs/fuse/file.c > +++ b/fs/fuse/file.c > @@ -1790,11 +1790,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) {