Lines Matching defs:folio

22 static int afs_symlink_read_folio(struct file *file, struct folio *folio);
23 static void afs_invalidate_folio(struct folio *folio, size_t offset,
25 static bool afs_release_folio(struct folio *folio, gfp_t gfp_flags);
339 static int afs_symlink_read_folio(struct file *file, struct folio *folio)
341 struct afs_vnode *vnode = AFS_FS_I(folio->mapping->host);
349 fsreq->pos = folio_pos(folio);
350 fsreq->len = folio_size(folio);
353 iov_iter_xarray(&fsreq->def_iter, ITER_DEST, &folio->mapping->i_pages,
358 folio_mark_uptodate(folio);
359 folio_unlock(folio);
382 struct folio **foliop, void **_fsdata)
412 static void afs_invalidate_dirty(struct folio *folio, size_t offset,
415 struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio));
419 priv = (unsigned long)folio_get_private(folio);
422 if (offset == 0 && length == folio_size(folio))
433 f = afs_folio_dirty_from(folio, priv);
434 t = afs_folio_dirty_to(folio, priv);
452 priv = afs_folio_dirty(folio, f, t);
453 folio_change_private(folio, (void *)priv);
454 trace_afs_folio_dirty(vnode, tracepoint_string("trunc"), folio);
458 trace_afs_folio_dirty(vnode, tracepoint_string("undirty"), folio);
459 folio_clear_dirty_for_io(folio);
461 trace_afs_folio_dirty(vnode, tracepoint_string("inval"), folio);
462 folio_detach_private(folio);
470 static void afs_invalidate_folio(struct folio *folio, size_t offset,
473 _enter("{%lu},%zu,%zu", folio->index, offset, length);
475 BUG_ON(!folio_test_locked(folio));
477 if (folio_get_private(folio))
478 afs_invalidate_dirty(folio, offset, length);
480 folio_wait_fscache(folio);
488 static bool afs_release_folio(struct folio *folio, gfp_t gfp)
490 struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio));
493 vnode->fid.vid, vnode->fid.vnode, folio_index(folio), folio->flags,
496 /* deny if folio is being written to the cache and the caller hasn't
499 if (folio_test_fscache(folio)) {
502 folio_wait_fscache(folio);
507 if (folio_test_private(folio)) {
508 trace_afs_folio_dirty(vnode, tracepoint_string("rel"), folio);
509 folio_detach_private(folio);
512 /* Indicate that the folio can be released */