Lines Matching defs:folio
113 * mext_folio_double_lock - Grab and lock folio on both @inode1 and @inode2
117 * @index1: folio index
118 * @index2: folio index
119 * @folio: result folio vector
121 * Grab two locked folio for inode's by inode order
125 pgoff_t index1, pgoff_t index2, struct folio *folio[2])
141 folio[0] = __filemap_get_folio(mapping[0], index1, FGP_WRITEBEGIN,
143 if (IS_ERR(folio[0])) {
145 return PTR_ERR(folio[0]);
148 folio[1] = __filemap_get_folio(mapping[1], index2, FGP_WRITEBEGIN,
151 if (IS_ERR(folio[1])) {
152 folio_unlock(folio[0]);
153 folio_put(folio[0]);
154 return PTR_ERR(folio[1]);
157 * __filemap_get_folio() may not wait on folio's writeback if
159 * here and explicitly wait on folio's writeback
161 folio_wait_writeback(folio[0]);
162 folio_wait_writeback(folio[1]);
164 swap(folio[0], folio[1]);
171 mext_page_mkuptodate(struct folio *folio, unsigned from, unsigned to)
173 struct inode *inode = folio->mapping->host;
178 BUG_ON(!folio_test_locked(folio));
179 BUG_ON(folio_test_writeback(folio));
181 if (folio_test_uptodate(folio))
185 head = folio_buffers(folio);
187 create_empty_buffers(&folio->page, blocksize, 0);
188 head = folio_buffers(folio);
191 block = (sector_t)folio->index << (PAGE_SHIFT - inode->i_blkbits);
205 folio_set_error(folio);
209 folio_zero_range(folio, block_start, blocksize);
231 folio_mark_uptodate(folio);
259 struct folio *folio[2] = {NULL, NULL};
310 donor_page_offset, folio);
321 VM_BUG_ON_FOLIO(folio_test_large(folio[0]), folio[0]);
322 VM_BUG_ON_FOLIO(folio_test_large(folio[1]), folio[1]);
323 VM_BUG_ON_FOLIO(folio_nr_pages(folio[0]) != folio_nr_pages(folio[1]), folio[1]);
343 if (!filemap_release_folio(folio[0], 0) ||
344 !filemap_release_folio(folio[1], 0)) {
357 *err = mext_page_mkuptodate(folio[0], from, from + replaced_size);
363 if (!filemap_release_folio(folio[0], 0) ||
364 !filemap_release_folio(folio[1], 0)) {
383 if (!folio_buffers(folio[0]))
384 create_empty_buffers(&folio[0]->page, 1 << orig_inode->i_blkbits, 0);
385 bh = folio_buffers(folio[0]);
395 block_commit_write(&folio[0]->page, from, from + replaced_size);
403 folio_unlock(folio[0]);
404 folio_put(folio[0]);
405 folio_unlock(folio[1]);
406 folio_put(folio[1]);