Lines Matching refs:pgio

794 ff_layout_get_ds_for_read(struct nfs_pageio_descriptor *pgio,  in ff_layout_get_ds_for_read()  argument
797 struct pnfs_layout_segment *lseg = pgio->pg_lseg; in ff_layout_get_ds_for_read()
800 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx, in ff_layout_get_ds_for_read()
802 if (ds || !pgio->pg_mirror_idx) in ff_layout_get_ds_for_read()
808 ff_layout_pg_get_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_read() argument
812 pnfs_put_lseg(pgio->pg_lseg); in ff_layout_pg_get_read()
813 pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode, in ff_layout_pg_get_read()
820 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_read()
821 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_read()
822 pgio->pg_lseg = NULL; in ff_layout_pg_get_read()
827 ff_layout_pg_check_layout(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_check_layout() argument
830 pnfs_generic_pg_check_layout(pgio); in ff_layout_pg_check_layout()
831 pnfs_generic_pg_check_range(pgio, req); in ff_layout_pg_check_layout()
835 ff_layout_pg_init_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_read() argument
844 ff_layout_pg_check_layout(pgio, req); in ff_layout_pg_init_read()
846 if (!pgio->pg_lseg) { in ff_layout_pg_init_read()
847 ff_layout_pg_get_read(pgio, req, false); in ff_layout_pg_init_read()
848 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
851 if (ff_layout_avoid_read_on_rw(pgio->pg_lseg)) { in ff_layout_pg_init_read()
852 ff_layout_pg_get_read(pgio, req, true); in ff_layout_pg_init_read()
853 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
857 ds = ff_layout_get_ds_for_read(pgio, &ds_idx); in ff_layout_pg_init_read()
859 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_read()
861 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_read()
867 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, ds_idx); in ff_layout_pg_init_read()
868 pgm = &pgio->pg_mirrors[0]; in ff_layout_pg_init_read()
871 pgio->pg_mirror_idx = ds_idx; in ff_layout_pg_init_read()
873 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_read()
875 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_read()
878 if (pgio->pg_error < 0) in ff_layout_pg_init_read()
881 trace_pnfs_mds_fallback_pg_init_read(pgio->pg_inode, in ff_layout_pg_init_read()
883 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_read()
884 pgio->pg_lseg); in ff_layout_pg_init_read()
885 pgio->pg_maxretrans = 0; in ff_layout_pg_init_read()
886 nfs_pageio_reset_read_mds(pgio); in ff_layout_pg_init_read()
890 ff_layout_pg_init_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_write() argument
899 ff_layout_pg_check_layout(pgio, req); in ff_layout_pg_init_write()
900 if (!pgio->pg_lseg) { in ff_layout_pg_init_write()
901 pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode, in ff_layout_pg_init_write()
908 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_init_write()
909 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_init_write()
910 pgio->pg_lseg = NULL; in ff_layout_pg_init_write()
915 if (pgio->pg_lseg == NULL) in ff_layout_pg_init_write()
919 if (pgio->pg_mirror_count != FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg)) in ff_layout_pg_init_write()
922 for (i = 0; i < pgio->pg_mirror_count; i++) { in ff_layout_pg_init_write()
923 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, i); in ff_layout_pg_init_write()
924 ds = nfs4_ff_layout_prepare_ds(pgio->pg_lseg, mirror, true); in ff_layout_pg_init_write()
926 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_write()
928 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
933 pgm = &pgio->pg_mirrors[i]; in ff_layout_pg_init_write()
937 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_write()
939 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_write()
942 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
943 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
946 trace_pnfs_mds_fallback_pg_init_write(pgio->pg_inode, in ff_layout_pg_init_write()
948 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_write()
949 pgio->pg_lseg); in ff_layout_pg_init_write()
950 pgio->pg_maxretrans = 0; in ff_layout_pg_init_write()
951 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_init_write()
952 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
956 ff_layout_pg_get_mirror_count_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_mirror_count_write() argument
959 if (!pgio->pg_lseg) { in ff_layout_pg_get_mirror_count_write()
960 pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode, in ff_layout_pg_get_mirror_count_write()
967 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_mirror_count_write()
968 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
969 pgio->pg_lseg = NULL; in ff_layout_pg_get_mirror_count_write()
973 if (pgio->pg_lseg) in ff_layout_pg_get_mirror_count_write()
974 return FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
976 trace_pnfs_mds_fallback_pg_get_mirror_count(pgio->pg_inode, in ff_layout_pg_get_mirror_count_write()
978 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_get_mirror_count_write()
979 pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
981 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_get_mirror_count_write()