Lines Matching refs:pgio
2696 pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio)
2698 if (pgio->pg_lseg == NULL ||
2699 test_bit(NFS_LSEG_VALID, &pgio->pg_lseg->pls_flags))
2701 pnfs_put_lseg(pgio->pg_lseg);
2702 pgio->pg_lseg = NULL;
2707 * Check for any intersection between the request and the pgio->pg_lseg,
2708 * and if none, put this pgio->pg_lseg away.
2711 pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
2713 if (pgio->pg_lseg && !pnfs_lseg_request_intersecting(pgio->pg_lseg, req)) {
2714 pnfs_put_lseg(pgio->pg_lseg);
2715 pgio->pg_lseg = NULL;
2721 pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
2725 pnfs_generic_pg_check_layout(pgio);
2726 pnfs_generic_pg_check_range(pgio, req);
2727 if (pgio->pg_lseg == NULL) {
2728 if (pgio->pg_dreq == NULL)
2729 rd_size = i_size_read(pgio->pg_inode) - req_offset(req);
2731 rd_size = nfs_dreq_bytes_left(pgio->pg_dreq);
2733 pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode,
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 = pnfs_update_layout(pgio->pg_inode,
2767 if (IS_ERR(pgio->pg_lseg)) {
2768 pgio->pg_error = PTR_ERR(pgio->pg_lseg);
2769 pgio->pg_lseg = NULL;
2774 if (pgio->pg_lseg == NULL)
2775 nfs_pageio_reset_write_mds(pgio);
2790 * Return 0 if @req cannot be coalesced into @pgio, otherwise return the number
2794 pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio,
2800 size = nfs_generic_pg_test(pgio, prev, req);
2815 if (pgio->pg_lseg) {
2816 seg_end = pnfs_end_offset(pgio->pg_lseg->pls_range.offset,
2817 pgio->pg_lseg->pls_range.length);
2837 struct nfs_pageio_descriptor pgio;
2840 nfs_pageio_init_write(&pgio, hdr->inode, FLUSH_STABLE, true,
2843 return nfs_pageio_resend(&pgio, hdr);
2966 struct nfs_pageio_descriptor pgio;
2969 nfs_pageio_init_read(&pgio, hdr->inode, true, hdr->completion_ops);
2970 return nfs_pageio_resend(&pgio, hdr);
3041 struct nfs_pageio_descriptor pgio;
3048 nfs_pageio_init_read(&pgio, hdr->inode, false,
3050 pgio.pg_mirror_idx = mirror_idx;
3051 hdr->task.tk_status = nfs_pageio_resend(&pgio, hdr);