On Tue, 23 Sept 2025 at 02:34, Joanne Koong <joannelkoong@xxxxxxxxx> wrote: > static int fuse_read_folio(struct file *file, struct folio *folio) > { > struct inode *inode = folio->mapping->host; > - int err; > + struct fuse_fill_read_data data = { > + .file = file, > + }; > + struct iomap_read_folio_ctx ctx = { > + .cur_folio = folio, > + .ops = &fuse_iomap_read_ops, > + .read_ctx = &data, > > - err = -EIO; > - if (fuse_is_bad(inode)) > - goto out; > + }; > > - err = fuse_do_readfolio(file, folio, 0, folio_size(folio)); > - if (!err) > - folio_mark_uptodate(folio); > + if (fuse_is_bad(inode)) { > + folio_unlock(folio); > + return -EIO; > + } > > + iomap_read_folio(&fuse_iomap_ops, &ctx); Why is the return value ignored? Thanks, Miklos