Lines Matching refs:pgio

941 ff_layout_get_ds_for_read(struct nfs_pageio_descriptor *pgio,  in ff_layout_get_ds_for_read()  argument
946 struct pnfs_layout_segment *lseg = pgio->pg_lseg; in ff_layout_get_ds_for_read()
949 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx, in ff_layout_get_ds_for_read()
951 if (!IS_ERR(ds) || !pgio->pg_mirror_idx) in ff_layout_get_ds_for_read()
958 ff_layout_pg_get_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_read() argument
962 pnfs_put_lseg(pgio->pg_lseg); in ff_layout_pg_get_read()
963 pgio->pg_lseg = in ff_layout_pg_get_read()
964 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_get_read()
967 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_read()
968 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_read()
969 pgio->pg_lseg = NULL; in ff_layout_pg_get_read()
986 ff_layout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, in ff_layout_pg_test() argument
992 u64 segment_offset = pgio->pg_lseg->pls_range.offset; in ff_layout_pg_test()
993 u32 stripe_unit = FF_LAYOUT_LSEG(pgio->pg_lseg)->stripe_unit; in ff_layout_pg_test()
996 size = pnfs_generic_pg_test(pgio, prev, req); in ff_layout_pg_test()
999 else if (!ff_layout_lseg_is_striped(FF_LAYOUT_LSEG(pgio->pg_lseg))) in ff_layout_pg_test()
1024 ff_layout_pg_init_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_read() argument
1032 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_read()
1034 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_read()
1036 pnfs_generic_pg_check_layout(pgio, req); in ff_layout_pg_init_read()
1038 if (!pgio->pg_lseg) { in ff_layout_pg_init_read()
1039 ff_layout_pg_get_read(pgio, req, false); in ff_layout_pg_init_read()
1040 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
1043 if (ff_layout_avoid_read_on_rw(pgio->pg_lseg)) { in ff_layout_pg_init_read()
1044 ff_layout_pg_get_read(pgio, req, true); in ff_layout_pg_init_read()
1045 if (!pgio->pg_lseg) in ff_layout_pg_init_read()
1051 ds = ff_layout_get_ds_for_read(pgio, &ds_idx, in ff_layout_pg_init_read()
1054 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_read()
1056 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_read()
1062 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, ds_idx); in ff_layout_pg_init_read()
1063 pgm = &pgio->pg_mirrors[0]; in ff_layout_pg_init_read()
1066 pgio->pg_mirror_idx = ds_idx; in ff_layout_pg_init_read()
1069 if (pgio->pg_error < 0) { in ff_layout_pg_init_read()
1070 if (pgio->pg_error != -EAGAIN) in ff_layout_pg_init_read()
1073 if (pgio->pg_maxretrans && req->wb_nio++ > pgio->pg_maxretrans) { in ff_layout_pg_init_read()
1074 if (NFS_SERVER(pgio->pg_inode)->flags & NFS_MOUNT_SOFTERR) in ff_layout_pg_init_read()
1075 pgio->pg_error = -ETIMEDOUT; in ff_layout_pg_init_read()
1077 pgio->pg_error = -EIO; in ff_layout_pg_init_read()
1080 pgio->pg_error = 0; in ff_layout_pg_init_read()
1086 trace_pnfs_mds_fallback_pg_init_read(pgio->pg_inode, in ff_layout_pg_init_read()
1088 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_read()
1089 pgio->pg_lseg); in ff_layout_pg_init_read()
1090 pgio->pg_maxretrans = 0; in ff_layout_pg_init_read()
1091 nfs_pageio_reset_read_mds(pgio); in ff_layout_pg_init_read()
1095 ff_layout_pg_init_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_init_write() argument
1104 pnfs_generic_pg_check_layout(pgio, req); in ff_layout_pg_init_write()
1105 if (!pgio->pg_lseg) { in ff_layout_pg_init_write()
1106 pgio->pg_lseg = in ff_layout_pg_init_write()
1107 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_init_write()
1110 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_init_write()
1111 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_init_write()
1112 pgio->pg_lseg = NULL; in ff_layout_pg_init_write()
1117 if (pgio->pg_lseg == NULL) in ff_layout_pg_init_write()
1121 if (pgio->pg_mirror_count != FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg)) in ff_layout_pg_init_write()
1124 for (i = 0; i < pgio->pg_mirror_count; i++) { in ff_layout_pg_init_write()
1125 mirror = FF_LAYOUT_COMP(pgio->pg_lseg, i); in ff_layout_pg_init_write()
1127 FF_LAYOUT_LSEG(pgio->pg_lseg)->stripe_unit, in ff_layout_pg_init_write()
1130 ds = nfs4_ff_layout_prepare_ds(pgio->pg_lseg, mirror, in ff_layout_pg_init_write()
1133 if (!ff_layout_no_fallback_to_mds(pgio->pg_lseg)) in ff_layout_pg_init_write()
1135 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
1140 pgm = &pgio->pg_mirrors[i]; in ff_layout_pg_init_write()
1144 if (NFS_SERVER(pgio->pg_inode)->flags & in ff_layout_pg_init_write()
1146 pgio->pg_maxretrans = io_maxretrans; in ff_layout_pg_init_write()
1149 pnfs_generic_pg_cleanup(pgio); in ff_layout_pg_init_write()
1150 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
1153 trace_pnfs_mds_fallback_pg_init_write(pgio->pg_inode, in ff_layout_pg_init_write()
1155 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_init_write()
1156 pgio->pg_lseg); in ff_layout_pg_init_write()
1157 pgio->pg_maxretrans = 0; in ff_layout_pg_init_write()
1158 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_init_write()
1159 pgio->pg_error = -EAGAIN; in ff_layout_pg_init_write()
1163 ff_layout_pg_get_mirror_count_write(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_mirror_count_write() argument
1166 if (!pgio->pg_lseg) { in ff_layout_pg_get_mirror_count_write()
1167 pgio->pg_lseg = in ff_layout_pg_get_mirror_count_write()
1168 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_get_mirror_count_write()
1171 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_mirror_count_write()
1172 pgio->pg_error = PTR_ERR(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
1173 pgio->pg_lseg = NULL; in ff_layout_pg_get_mirror_count_write()
1177 if (pgio->pg_lseg) in ff_layout_pg_get_mirror_count_write()
1178 return FF_LAYOUT_MIRROR_COUNT(pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
1180 trace_pnfs_mds_fallback_pg_get_mirror_count(pgio->pg_inode, in ff_layout_pg_get_mirror_count_write()
1182 NFS_I(pgio->pg_inode)->layout, in ff_layout_pg_get_mirror_count_write()
1183 pgio->pg_lseg); in ff_layout_pg_get_mirror_count_write()
1185 nfs_pageio_reset_write_mds(pgio); in ff_layout_pg_get_mirror_count_write()