Lines Matching refs:pgio

2697 pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio)
2699 if (pgio->pg_lseg == NULL ||
2700 test_bit(NFS_LSEG_VALID, &pgio->pg_lseg->pls_flags))
2702 pnfs_put_lseg(pgio->pg_lseg);
2703 pgio->pg_lseg = NULL;
2708 * Check for any intersection between the request and the pgio->pg_lseg,
2709 * and if none, put this pgio->pg_lseg away.
2712 pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
2714 if (pgio->pg_lseg && !pnfs_lseg_request_intersecting(pgio->pg_lseg, req)) {
2715 pnfs_put_lseg(pgio->pg_lseg);
2716 pgio->pg_lseg = NULL;
2722 pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
2726 pnfs_generic_pg_check_layout(pgio);
2727 pnfs_generic_pg_check_range(pgio, req);
2728 if (pgio->pg_lseg == NULL) {
2729 if (pgio->pg_dreq == NULL)
2730 rd_size = i_size_read(pgio->pg_inode) - req_offset(req);
2732 rd_size = nfs_dreq_bytes_left(pgio->pg_dreq,
2735 pgio->pg_lseg =
2736 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req),
2740 if (IS_ERR(pgio->pg_lseg)) {
2741 pgio->pg_error = PTR_ERR(pgio->pg_lseg);
2742 pgio->pg_lseg = NULL;
2747 if (pgio->pg_lseg == NULL)
2748 nfs_pageio_reset_read_mds(pgio);
2754 pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio,
2757 pnfs_generic_pg_check_layout(pgio);
2758 pnfs_generic_pg_check_range(pgio, req);
2759 if (pgio->pg_lseg == NULL) {
2760 pgio->pg_lseg =
2761 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req),
2764 if (IS_ERR(pgio->pg_lseg)) {
2765 pgio->pg_error = PTR_ERR(pgio->pg_lseg);
2766 pgio->pg_lseg = NULL;
2771 if (pgio->pg_lseg == NULL)
2772 nfs_pageio_reset_write_mds(pgio);
2787 * Return 0 if @req cannot be coalesced into @pgio, otherwise return the number
2791 pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio,
2797 size = nfs_generic_pg_test(pgio, prev, req);
2812 if (pgio->pg_lseg) {
2813 seg_end = pnfs_end_offset(pgio->pg_lseg->pls_range.offset,
2814 pgio->pg_lseg->pls_range.length);
2834 struct nfs_pageio_descriptor pgio;
2837 nfs_pageio_init_write(&pgio, hdr->inode, FLUSH_STABLE, true,
2839 return nfs_pageio_resend(&pgio, hdr);
2963 struct nfs_pageio_descriptor pgio;
2966 nfs_pageio_init_read(&pgio, hdr->inode, true, hdr->completion_ops);
2967 return nfs_pageio_resend(&pgio, hdr);
3038 struct nfs_pageio_descriptor pgio;
3045 nfs_pageio_init_read(&pgio, hdr->inode, false,
3047 pgio.pg_mirror_idx = mirror_idx;
3048 hdr->task.tk_status = nfs_pageio_resend(&pgio, hdr);