Lines Matching defs:folio

67 					struct folio **foliop, void **_fsdata);
80 static bool ceph_dirty_folio(struct address_space *mapping, struct folio *folio)
86 if (folio_test_dirty(folio)) {
88 mapping->host, folio, folio->index);
89 VM_BUG_ON_FOLIO(!folio_test_private(folio), folio);
116 mapping->host, folio, folio->index,
123 * Reference snap context in folio->private. Also set
126 VM_WARN_ON_FOLIO(folio->private, folio);
127 folio_attach_private(folio, snapc);
129 return ceph_fscache_dirty_folio(mapping, folio);
133 * If we are truncating the full folio (i.e. offset == 0), adjust the
134 * dirty folio counters appropriately. Only called if there is private
135 * data on the folio.
137 static void ceph_invalidate_folio(struct folio *folio, size_t offset,
144 inode = folio->mapping->host;
147 if (offset != 0 || length != folio_size(folio)) {
149 inode, folio->index, offset, length);
153 WARN_ON(!folio_test_locked(folio));
154 if (folio_test_private(folio)) {
156 inode, folio->index);
158 snapc = folio_detach_private(folio);
163 folio_wait_fscache(folio);
166 static bool ceph_release_folio(struct folio *folio, gfp_t gfp)
168 struct inode *inode = folio->mapping->host;
172 folio->index, folio_test_dirty(folio) ? "" : "not ");
174 if (folio_test_private(folio))
177 if (folio_test_fscache(folio)) {
180 folio_wait_fscache(folio);
658 struct folio *folio = page_folio(page);
698 dout("folio at %lu beyond eof %llu\n", folio->index,
700 folio_invalidate(folio, 0, folio_size(folio));
1062 struct folio *folio = page_folio(page);
1064 dout("folio at %lu beyond eof %llu\n",
1065 folio->index, ceph_wbc.i_size);
1067 folio_pos(folio) >= i_size_read(inode)) &&
1068 folio_clear_dirty_for_io(folio))
1069 folio_invalidate(folio, 0,
1070 folio_size(folio));
1071 folio_unlock(folio);
1469 struct folio **foliop, void **_fsdata)
1504 struct folio *folio = NULL;
1507 r = netfs_write_begin(&ci->netfs, file, inode->i_mapping, pos, len, &folio, NULL);
1511 folio_wait_fscache(folio);
1512 WARN_ON_ONCE(!folio_test_locked(folio));
1513 *pagep = &folio->page;
1525 struct folio *folio = page_folio(subpage);
1529 dout("write_end file %p inode %p folio %p %d~%d (%d)\n", file,
1530 inode, folio, (int)pos, (int)copied, (int)len);
1532 if (!folio_test_uptodate(folio)) {
1538 folio_mark_uptodate(folio);
1545 folio_mark_dirty(folio);
1548 folio_unlock(folio);
1549 folio_put(folio);
1829 struct folio *folio = NULL;
1857 folio = read_mapping_folio(inode->i_mapping, 0, file);
1858 if (IS_ERR(folio)) {
1859 err = PTR_ERR(folio);
1863 folio_lock(folio);
1866 if (len > folio_size(folio))
1867 len = folio_size(folio);
1895 pages[0] = folio_page(folio, 0);
1946 if (folio) {
1947 folio_unlock(folio);
1948 folio_put(folio);