Lines Matching defs:folio

480 static int ext4_read_inline_folio(struct inode *inode, struct folio *folio)
487 BUG_ON(!folio_test_locked(folio));
489 BUG_ON(folio->index);
503 kaddr = kmap_local_folio(folio, 0);
505 flush_dcache_folio(folio);
507 folio_zero_segment(folio, len, folio_size(folio));
508 folio_mark_uptodate(folio);
515 int ext4_readpage_inline(struct inode *inode, struct folio *folio)
529 if (!folio->index)
530 ret = ext4_read_inline_folio(inode, folio);
531 else if (!folio_test_uptodate(folio)) {
532 folio_zero_segment(folio, 0, folio_size(folio));
533 folio_mark_uptodate(folio);
538 folio_unlock(folio);
548 struct folio *folio = NULL;
577 folio = __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS,
579 if (IS_ERR(folio)) {
580 ret = PTR_ERR(folio);
594 if (!folio_test_uptodate(folio)) {
595 ret = ext4_read_inline_folio(inode, folio);
605 ret = __block_write_begin(&folio->page, from, to,
608 ret = __block_write_begin(&folio->page, from, to, ext4_get_block);
612 folio_buffers(folio), from, to,
617 folio_unlock(folio);
618 folio_put(folio);
619 folio = NULL;
639 if (folio)
640 block_commit_write(&folio->page, from, to);
642 if (folio) {
643 folio_unlock(folio);
644 folio_put(folio);
668 struct folio *folio;
705 folio = __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS,
707 if (IS_ERR(folio)) {
708 ret = PTR_ERR(folio);
712 *pagep = &folio->page;
716 folio_unlock(folio);
717 folio_put(folio);
721 if (!folio_test_uptodate(folio)) {
722 ret = ext4_read_inline_folio(inode, folio);
724 folio_unlock(folio);
725 folio_put(folio);
744 unsigned copied, struct folio *folio)
752 if (unlikely(copied < len) && !folio_test_uptodate(folio))
758 folio_unlock(folio);
759 folio_put(folio);
773 kaddr = kmap_local_folio(folio, 0);
776 folio_mark_uptodate(folio);
778 folio_clear_dirty(folio);
784 * It's important to update i_size while still holding folio
790 folio_unlock(folio);
791 folio_put(folio);
794 * Don't mark the inode dirty under folio lock. First, it unnecessarily
795 * makes the holding time of folio lock longer. Second, it forces lock
796 * ordering of folio lock and transaction start for journaling
839 struct folio *folio;
841 folio = __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN,
843 if (IS_ERR(folio))
844 return PTR_ERR(folio);
854 if (!folio_test_uptodate(folio)) {
855 ret = ext4_read_inline_folio(inode, folio);
860 ret = __block_write_begin(&folio->page, 0, inline_size,
864 folio_unlock(folio);
865 folio_put(folio);
870 folio_mark_dirty(folio);
871 folio_mark_uptodate(folio);
877 if (folio) {
878 folio_unlock(folio);
879 folio_put(folio);
900 struct folio *folio;
934 folio = __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS,
936 if (IS_ERR(folio)) {
937 ret = PTR_ERR(folio);
947 if (!folio_test_uptodate(folio)) {
948 ret = ext4_read_inline_folio(inode, folio);
958 *pagep = &folio->page;
963 folio_unlock(folio);
964 folio_put(folio);