Skip to content

Commit ee80369

Browse files
joannekoongMiklos Szeredi
authored andcommitted
fuse: convert cuse to use folios
Convert cuse requests to use a folio instead of a page. No functional changes. Signed-off-by: Joanne Koong <[email protected]> Reviewed-by: Josef Bacik <[email protected]> Signed-off-by: Miklos Szeredi <[email protected]>
1 parent 29279e1 commit ee80369

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

fs/fuse/cuse.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,8 @@ struct cuse_init_args {
303303
struct fuse_args_pages ap;
304304
struct cuse_init_in in;
305305
struct cuse_init_out out;
306-
struct page *page;
307-
struct fuse_page_desc desc;
306+
struct folio *folio;
307+
struct fuse_folio_desc desc;
308308
};
309309

310310
/**
@@ -326,7 +326,7 @@ static void cuse_process_init_reply(struct fuse_mount *fm,
326326
struct fuse_args_pages *ap = &ia->ap;
327327
struct cuse_conn *cc = fc_to_cc(fc), *pos;
328328
struct cuse_init_out *arg = &ia->out;
329-
struct page *page = ap->pages[0];
329+
struct folio *folio = ap->folios[0];
330330
struct cuse_devinfo devinfo = { };
331331
struct device *dev;
332332
struct cdev *cdev;
@@ -343,7 +343,7 @@ static void cuse_process_init_reply(struct fuse_mount *fm,
343343
/* parse init reply */
344344
cc->unrestricted_ioctl = arg->flags & CUSE_UNRESTRICTED_IOCTL;
345345

346-
rc = cuse_parse_devinfo(page_address(page), ap->args.out_args[1].size,
346+
rc = cuse_parse_devinfo(folio_address(folio), ap->args.out_args[1].size,
347347
&devinfo);
348348
if (rc)
349349
goto err;
@@ -411,7 +411,7 @@ static void cuse_process_init_reply(struct fuse_mount *fm,
411411
kobject_uevent(&dev->kobj, KOBJ_ADD);
412412
out:
413413
kfree(ia);
414-
__free_page(page);
414+
folio_put(folio);
415415
return;
416416

417417
err_cdev:
@@ -429,21 +429,22 @@ static void cuse_process_init_reply(struct fuse_mount *fm,
429429
static int cuse_send_init(struct cuse_conn *cc)
430430
{
431431
int rc;
432-
struct page *page;
432+
struct folio *folio;
433433
struct fuse_mount *fm = &cc->fm;
434434
struct cuse_init_args *ia;
435435
struct fuse_args_pages *ap;
436436

437437
BUILD_BUG_ON(CUSE_INIT_INFO_MAX > PAGE_SIZE);
438438

439439
rc = -ENOMEM;
440-
page = alloc_page(GFP_KERNEL | __GFP_ZERO);
441-
if (!page)
440+
441+
folio = folio_alloc(GFP_KERNEL | __GFP_ZERO, 0);
442+
if (!folio)
442443
goto err;
443444

444445
ia = kzalloc(sizeof(*ia), GFP_KERNEL);
445446
if (!ia)
446-
goto err_free_page;
447+
goto err_free_folio;
447448

448449
ap = &ia->ap;
449450
ia->in.major = FUSE_KERNEL_VERSION;
@@ -459,18 +460,19 @@ static int cuse_send_init(struct cuse_conn *cc)
459460
ap->args.out_args[1].size = CUSE_INIT_INFO_MAX;
460461
ap->args.out_argvar = true;
461462
ap->args.out_pages = true;
462-
ap->num_pages = 1;
463-
ap->pages = &ia->page;
464-
ap->descs = &ia->desc;
465-
ia->page = page;
463+
ap->uses_folios = true;
464+
ap->num_folios = 1;
465+
ap->folios = &ia->folio;
466+
ap->folio_descs = &ia->desc;
467+
ia->folio = folio;
466468
ia->desc.length = ap->args.out_args[1].size;
467469
ap->args.end = cuse_process_init_reply;
468470

469471
rc = fuse_simple_background(fm, &ap->args, GFP_KERNEL);
470472
if (rc) {
471473
kfree(ia);
472-
err_free_page:
473-
__free_page(page);
474+
err_free_folio:
475+
folio_put(folio);
474476
}
475477
err:
476478
return rc;

0 commit comments

Comments
 (0)