Lines Matching refs:pgio

796 ff_layout_get_ds_for_read(struct nfs_pageio_descriptor *pgio,  in ff_layout_get_ds_for_read()  argument
799 struct pnfs_layout_segment *lseg = pgio->pg_lseg; in ff_layout_get_ds_for_read()
802 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx, in ff_layout_get_ds_for_read()
804 if (ds || !pgio->pg_mirror_idx) in ff_layout_get_ds_for_read()
810 ff_layout_pg_get_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_read() argument
814 pnfs_put_lseg(pgio->pg_lseg); in ff_layout_pg_get_read()
815 pgio->pg_lseg = in ff_layout_pg_get_read()
816 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_get_read()
819 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_read()
820 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_read()
821 pgio->pg_lseg = NULL; in ff_layout_pg_get_read()
826 ff_layout_pg_check_layout(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_check_layout() argument
829 pnfs_generic_pg_check_layout(pgio); in ff_layout_pg_check_layout()
830 pnfs_generic_pg_check_range(pgio, req); in ff_layout_pg_check_layout()
834 ff_layout_pg_init_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_read() argument
843 ff_layout_pg_check_layout(pgio, req); in ff_layout_pg_init_read()
845 if (!pgio->pg_lseg) { in ff_layout_pg_init_read()
846 ff_layout_pg_get_read(pgio, req, false); in ff_layout_pg_init_read()
847 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
850 if (ff_layout_avoid_read_on_rw(pgio->pg_lseg)) { in ff_layout_pg_init_read()
851 ff_layout_pg_get_read(pgio, req, true); in ff_layout_pg_init_read()
852 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
856 ds = ff_layout_get_ds_for_read(pgio, &ds_idx); in ff_layout_pg_init_read()
858 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_read()
860 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_read()
866 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, ds_idx); in ff_layout_pg_init_read()
867 pgm = &pgio->pg_mirrors[0]; in ff_layout_pg_init_read()
870 pgio->pg_mirror_idx = ds_idx; in ff_layout_pg_init_read()
872 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_read()
874 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_read()
877 if (pgio->pg_error < 0) in ff_layout_pg_init_read()
880 trace_pnfs_mds_fallback_pg_init_read(pgio->pg_inode, in ff_layout_pg_init_read()
882 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_read()
883 pgio->pg_lseg); in ff_layout_pg_init_read()
884 pgio->pg_maxretrans = 0; in ff_layout_pg_init_read()
885 nfs_pageio_reset_read_mds(pgio); in ff_layout_pg_init_read()
889 ff_layout_pg_init_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_write() argument
898 ff_layout_pg_check_layout(pgio, req); in ff_layout_pg_init_write()
899 if (!pgio->pg_lseg) { in ff_layout_pg_init_write()
900 pgio->pg_lseg = in ff_layout_pg_init_write()
901 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_init_write()
904 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_init_write()
905 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_init_write()
906 pgio->pg_lseg = NULL; in ff_layout_pg_init_write()
911 if (pgio->pg_lseg == NULL) in ff_layout_pg_init_write()
915 if (pgio->pg_mirror_count != FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg)) in ff_layout_pg_init_write()
918 for (i = 0; i < pgio->pg_mirror_count; i++) { in ff_layout_pg_init_write()
919 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, i); in ff_layout_pg_init_write()
920 ds = nfs4_ff_layout_prepare_ds(pgio->pg_lseg, mirror, true); in ff_layout_pg_init_write()
922 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_write()
924 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
929 pgm = &pgio->pg_mirrors[i]; in ff_layout_pg_init_write()
933 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_write()
935 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_write()
938 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
939 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
942 trace_pnfs_mds_fallback_pg_init_write(pgio->pg_inode, in ff_layout_pg_init_write()
944 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_write()
945 pgio->pg_lseg); in ff_layout_pg_init_write()
946 pgio->pg_maxretrans = 0; in ff_layout_pg_init_write()
947 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_init_write()
948 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
952 ff_layout_pg_get_mirror_count_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_mirror_count_write() argument
955 if (!pgio->pg_lseg) { in ff_layout_pg_get_mirror_count_write()
956 pgio->pg_lseg = in ff_layout_pg_get_mirror_count_write()
957 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_get_mirror_count_write()
960 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_mirror_count_write()
961 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
962 pgio->pg_lseg = NULL; in ff_layout_pg_get_mirror_count_write()
966 if (pgio->pg_lseg) in ff_layout_pg_get_mirror_count_write()
967 return FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
969 trace_pnfs_mds_fallback_pg_get_mirror_count(pgio->pg_inode, in ff_layout_pg_get_mirror_count_write()
971 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_get_mirror_count_write()
972 pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
974 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_get_mirror_count_write()