nfs_page
struct nfs_page *req, unsigned int alignment, bool is_write)
bl_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
bl_pg_test_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
struct nfs_page *req)
bl_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
bl_pg_test_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *req = nfs_list_entry(hdr->pages.next);
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req)
struct nfs_page *head = req->wb_head;
struct nfs_page *req, *subreq;
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req)
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req;
filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *req)
filelayout_mark_request_commit(struct nfs_page *req,
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *req;
struct nfs_page *req,
ff_layout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
struct nfs_page *req)
void nfs_free_request(struct nfs_page *req);
void nfs_mark_request_commit(struct nfs_page *req,
void nfs_request_add_commit_list(struct nfs_page *req,
void nfs_request_add_commit_list_locked(struct nfs_page *req,
void nfs_request_remove_commit_list(struct nfs_page *req,
struct nfs_page *req)
static inline void nfs_folio_mark_unstable(struct nfs_page *req,
const struct nfs_page *req
__field(const struct nfs_page *, req)
const struct nfs_page *req \
const struct nfs_page *req,
const struct nfs_page *req, \
struct nfs_page *req)
static bool nfs_page_is_contiguous(const struct nfs_page *prev,
const struct nfs_page *req)
static unsigned int nfs_coalesce_size(struct nfs_page *prev,
struct nfs_page *req,
struct nfs_page *req)
struct nfs_page *prev = NULL;
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *subreq;
struct nfs_page *req;
req = list_first_entry(&head, struct nfs_page, wb_list);
struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *dupreq;
static inline struct nfs_page *nfs_page_alloc(void)
struct nfs_page *p =
struct nfs_page *req = nfs_list_entry(pages.next);
nfs_page_free(struct nfs_page *p)
struct nfs_page *prev;
sizeof(struct nfs_page),
nfs_page_set_headlock(struct nfs_page *req)
nfs_page_clear_headlock(struct nfs_page *req)
nfs_page_group_lock(struct nfs_page *req)
nfs_page_group_unlock(struct nfs_page *req)
bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit)
struct nfs_page *head = req->wb_head;
struct nfs_page *tmp;
bool nfs_page_group_sync_on_bit(struct nfs_page *req, unsigned int bit)
nfs_page_group_init(struct nfs_page *req, struct nfs_page *prev)
struct nfs_page *req = container_of(kref, struct nfs_page, wb_kref);
struct nfs_page *head = req->wb_head;
struct nfs_page *tmp, *next;
const struct nfs_page *req;
static struct nfs_page *nfs_page_create(struct nfs_lock_context *l_ctx,
struct nfs_page *req;
static void nfs_page_assign_folio(struct nfs_page *req, struct folio *folio)
static void nfs_page_assign_page(struct nfs_page *req, struct page *page)
const struct nfs_page *req)
struct nfs_page *nfs_page_create_from_page(struct nfs_open_context *ctx,
struct nfs_page *ret;
struct nfs_page *nfs_page_create_from_folio(struct nfs_open_context *ctx,
struct nfs_page *ret;
static struct nfs_page *
nfs_create_subreq(struct nfs_page *req,
struct nfs_page *last;
struct nfs_page *ret;
const struct nfs_page *req = i->req;
void nfs_unlock_request(struct nfs_page *req)
void nfs_unlock_and_release_request(struct nfs_page *req)
static void nfs_clear_request(struct nfs_page *req)
const struct nfs_page *req = i->req;
void nfs_free_request(struct nfs_page *req)
void nfs_release_request(struct nfs_page *req)
struct nfs_page *prev, struct nfs_page *req)
struct nfs_page *req = hdr->req;
struct nfs_page *req;
struct nfs_page *req)
pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
struct nfs_page *req, u64 wb_size)
struct nfs_page *prev, struct nfs_page *req)
void (*mark_request_commit) (struct nfs_page *req,
void (*clear_request_commit) (struct nfs_page *req,
void pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio, struct nfs_page *req);
void pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *, struct nfs_page *);
struct nfs_page *req, u64 wb_size);
struct nfs_page *prev, struct nfs_page *req);
void pnfs_generic_clear_request_commit(struct nfs_page *req,
void pnfs_layout_mark_request_commit(struct nfs_page *req,
pnfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg,
pnfs_clear_request_commit(struct nfs_page *req, struct nfs_commit_info *cinfo)
pnfs_lseg_request_intersecting(struct pnfs_layout_segment *lseg, struct nfs_page *req)
pnfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg,
pnfs_clear_request_commit(struct nfs_page *req, struct nfs_commit_info *cinfo)
pnfs_layout_mark_request_commit(struct nfs_page *req,
pnfs_generic_clear_request_commit(struct nfs_page *req,
static void nfs_readpage_release(struct nfs_page *req, int error)
static void nfs_page_group_set_uptodate(struct nfs_page *req)
static void nfs_page_group_mark_read_failed(struct nfs_page *req)
struct nfs_page *tmp;
struct nfs_page *req = nfs_list_entry(hdr->pages.next);
struct nfs_page *req;
struct nfs_page *new;
static struct nfs_page *nfs_try_to_update_request(struct folio *folio,
struct nfs_page *req;
static struct nfs_page *nfs_setup_write_request(struct nfs_open_context *ctx,
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req;
static void nfs_redirty_request(struct nfs_page *req)
struct nfs_page *req;
nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode)
static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode)
struct nfs_page *req;
struct nfs_page *first;
static struct nfs_page *nfs_folio_find_head_request(struct folio *folio)
struct nfs_page *req;
struct nfs_page *req;
struct nfs_page *req)
struct nfs_page *req;
struct nfs_page *req;
static bool nfs_page_group_covers_page(struct nfs_page *req)
static void nfs_mark_uptodate(struct nfs_page *req)
static void nfs_page_end_writeback(struct nfs_page *req)
nfs_destroy_unlinked_subrequests(struct nfs_page *destroy_list,
struct nfs_page *old_head,
struct nfs_page *subreq = destroy_list;
void nfs_join_page_group(struct nfs_page *head, struct nfs_commit_info *cinfo,
struct nfs_page *subreq;
struct nfs_page *destroy_list = NULL;
static int nfs_wait_on_request(struct nfs_page *req)
nfs_unroll_locks(struct nfs_page *head, struct nfs_page *req)
struct nfs_page *tmp;
nfs_page_group_lock_subreq(struct nfs_page *head, struct nfs_page *subreq)
static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio)
struct nfs_page *head, *subreq;
static void nfs_redirty_request(struct nfs_page *req);
static void nfs_write_error(struct nfs_page *req, int error)
struct nfs_page *req;
static void nfs_inode_remove_request(struct nfs_page *req);
struct nfs_page *req);
static void nfs_inode_add_request(struct nfs_page *req)
static void nfs_inode_remove_request(struct nfs_page *req)
static void nfs_mark_request_dirty(struct nfs_page *req)
nfs_request_add_commit_list_locked(struct nfs_page *req, struct list_head *dst,
nfs_request_add_commit_list(struct nfs_page *req, struct nfs_commit_info *cinfo)
nfs_request_remove_commit_list(struct nfs_page *req,
nfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg,
static void nfs_folio_clear_commit(struct nfs_page *req)
struct nfs_page *req)
struct nfs_page *req = nfs_list_entry(hdr->pages.next);
struct nfs_page *req, *tmp;
extern struct nfs_page *nfs_page_create_from_page(struct nfs_open_context *ctx,
extern struct nfs_page *nfs_page_create_from_folio(struct nfs_open_context *ctx,
extern void nfs_release_request(struct nfs_page *);
struct nfs_page *);
struct nfs_page *prev,
struct nfs_page *req);
extern void nfs_unlock_request(struct nfs_page *req);
extern void nfs_unlock_and_release_request(struct nfs_page *);
extern void nfs_join_page_group(struct nfs_page *head,
extern int nfs_page_group_lock(struct nfs_page *);
extern void nfs_page_group_unlock(struct nfs_page *);
extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int);
extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int);
extern int nfs_page_set_headlock(struct nfs_page *req);
extern void nfs_page_clear_headlock(struct nfs_page *req);
static inline struct folio *nfs_page_to_folio(const struct nfs_page *req)
static inline struct page *nfs_page_to_page(const struct nfs_page *req,
static inline struct inode *nfs_page_to_inode(const struct nfs_page *req)
static inline size_t nfs_page_max_length(const struct nfs_page *req)
nfs_lock_request(struct nfs_page *req)
nfs_list_add_request(struct nfs_page *req, struct list_head *head)
nfs_list_move_request(struct nfs_page *req, struct list_head *head)
nfs_list_remove_request(struct nfs_page *req)
static inline struct nfs_page *
return list_entry(head, struct nfs_page, wb_list);
static inline loff_t req_offset(const struct nfs_page *req)
nfs_req_openctx(struct nfs_page *req)
struct nfs_page *wb_this_page; /* list of reqs for this page */
struct nfs_page *wb_head; /* head pointer for req list */
void (*pg_init)(struct nfs_pageio_descriptor *, struct nfs_page *);
size_t (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *,
struct nfs_page *);
struct nfs_page *);
struct nfs_page;
struct nfs_page *req;
void (*resched_write) (struct nfs_commit_info *, struct nfs_page *);