Lines Matching defs:folio
380 static int affs_read_folio(struct file *file, struct folio *folio)
382 return block_read_full_folio(folio, affs_get_block);
526 static int affs_do_read_folio_ofs(struct folio *folio, size_t to, int create)
528 struct inode *inode = folio->mapping->host;
536 folio->index, to);
537 BUG_ON(to > folio_size(folio));
539 tmp = folio_pos(folio);
549 memcpy_to_folio(folio, pos, AFFS_DATA(bh) + boff, tmp);
629 static int affs_read_folio_ofs(struct file *file, struct folio *folio)
631 struct inode *inode = folio->mapping->host;
635 pr_debug("%s(%lu, %ld)\n", __func__, inode->i_ino, folio->index);
636 to = folio_size(folio);
637 if (folio_pos(folio) + to > inode->i_size) {
638 to = inode->i_size - folio_pos(folio);
639 folio_zero_segment(folio, to, folio_size(folio));
642 err = affs_do_read_folio_ofs(folio, to, 0);
644 folio_mark_uptodate(folio);
645 folio_unlock(folio);
654 struct folio *folio;
670 folio = __filemap_get_folio(mapping, index, FGP_WRITEBEGIN,
672 if (IS_ERR(folio))
673 return PTR_ERR(folio);
674 *pagep = &folio->page;
676 if (folio_test_uptodate(folio))
680 err = affs_do_read_folio_ofs(folio, folio_size(folio), 1);
682 folio_unlock(folio);
683 folio_put(folio);
692 struct folio *folio = page_folio(page);
706 * we don't have to, because the folio should always be uptodate here,
713 data = folio_address(folio);
717 tmp = (folio->index << PAGE_SHIFT) + from;
809 folio_mark_uptodate(folio);
813 tmp = (folio->index << PAGE_SHIFT) + from;
824 folio_unlock(folio);
825 folio_put(folio);