Lines Matching refs:lseg

337 		struct pnfs_layout_segment *lseg,
340 pnfs_generic_layout_insert_lseg(lo, lseg,
554 ff_layout_free_lseg(struct pnfs_layout_segment *lseg)
556 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg);
560 if (lseg->pls_range.iomode == IOMODE_RW) {
564 ffl = FF_LAYOUT_FROM_HDR(lseg->pls_layout);
567 pnfs_generic_ds_cinfo_release_lseg(&ffl->commit_info, lseg);
718 ff_layout_mark_ds_unreachable(struct pnfs_layout_segment *lseg, u32 idx)
720 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
727 ff_layout_mark_ds_reachable(struct pnfs_layout_segment *lseg, u32 idx)
729 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
736 ff_layout_choose_ds_for_read(struct pnfs_layout_segment *lseg,
740 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg);
751 mirror = FF_LAYOUT_COMP(lseg, idx);
752 ds = nfs4_ff_layout_prepare_ds(lseg, mirror, fail_return);
768 ff_layout_choose_any_ds_for_read(struct pnfs_layout_segment *lseg,
771 return ff_layout_choose_ds_for_read(lseg, start_idx, best_idx, false);
775 ff_layout_choose_valid_ds_for_read(struct pnfs_layout_segment *lseg,
778 return ff_layout_choose_ds_for_read(lseg, start_idx, best_idx, true);
782 ff_layout_choose_best_ds_for_read(struct pnfs_layout_segment *lseg,
787 ds = ff_layout_choose_valid_ds_for_read(lseg, start_idx, best_idx);
790 return ff_layout_choose_any_ds_for_read(lseg, start_idx, best_idx);
797 struct pnfs_layout_segment *lseg = pgio->pg_lseg;
800 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx,
804 return ff_layout_choose_best_ds_for_read(lseg, 0, best_idx);
914 /* If no lseg, fall back to write through mds */
980 /* no lseg means that pnfs is not in use, so no mirroring here */
1049 hdr->lseg);
1059 if (ff_layout_choose_any_ds_for_read(hdr->lseg, idx, &new_idx))
1060 ff_layout_send_layouterror(hdr->lseg);
1062 pnfs_error_mark_layout_for_return(hdr->inode, hdr->lseg);
1071 pnfs_error_mark_layout_for_return(hdr->inode, hdr->lseg);
1085 hdr->lseg);
1093 struct pnfs_layout_segment *lseg,
1096 struct pnfs_layout_hdr *lo = lseg->pls_layout;
1098 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
1131 * Layout will not be destroyed until all current lseg
1154 if (ff_layout_avoid_mds_available_ds(lseg))
1167 struct pnfs_layout_segment *lseg,
1170 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
1182 nfs_inc_stats(lseg->pls_layout->plh_inode, NFSIOS_DELAY);
1202 struct pnfs_layout_segment *lseg,
1208 ff_layout_mark_ds_reachable(lseg, idx);
1213 if (!pnfs_is_valid_lseg(lseg))
1218 return ff_layout_async_handle_error_v3(task, lseg, idx);
1221 lseg, idx);
1229 static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
1263 mirror = FF_LAYOUT_COMP(lseg, idx);
1264 err = ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout),
1273 ff_layout_mark_ds_unreachable(lseg, idx);
1282 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode,
1283 lseg);
1296 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx,
1304 hdr->ds_clp, hdr->lseg,
1328 ff_layout_need_layoutcommit(struct pnfs_layout_segment *lseg)
1330 return !(FF_LAYOUT_LSEG(lseg)->flags & FF_FLAGS_NO_LAYOUTCOMMIT);
1344 struct pnfs_layout_segment *lseg,
1347 if (!ff_layout_need_layoutcommit(lseg))
1350 pnfs_set_layoutcommit(inode, lseg, end_offset);
1361 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx),
1372 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx),
1375 set_bit(NFS_LSEG_LAYOUTRETURN, &hdr->lseg->pls_flags);
1463 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx,
1471 hdr->ds_clp, hdr->lseg,
1493 ff_layout_set_layoutcommit(hdr->inode, hdr->lseg, end_offs);
1509 ff_layout_io_track_ds_error(data->lseg, data->ds_commit_index,
1517 data->lseg, data->ds_commit_index);
1532 ff_layout_set_layoutcommit(data->inode, data->lseg, data->lwb);
1543 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx),
1554 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx),
1557 set_bit(NFS_LSEG_LAYOUTRETURN, &hdr->lseg->pls_flags);
1624 ff_layout_send_layouterror(hdr->lseg);
1637 FF_LAYOUT_COMP(cdata->lseg, cdata->ds_commit_index),
1655 FF_LAYOUT_COMP(cdata->lseg, cdata->ds_commit_index),
1657 set_bit(NFS_LSEG_LAYOUTRETURN, &cdata->lseg->pls_flags);
1751 struct pnfs_layout_segment *lseg = hdr->lseg;
1765 mirror = FF_LAYOUT_COMP(lseg, idx);
1766 ds = nfs4_ff_layout_prepare_ds(lseg, mirror, false);
1775 ds_cred = ff_layout_get_ds_cred(mirror, &lseg->pls_range, hdr->cred);
1809 if (ff_layout_avoid_mds_available_ds(lseg))
1813 IOMODE_READ, NFS_I(hdr->inode)->layout, lseg);
1821 struct pnfs_layout_segment *lseg = hdr->lseg;
1831 mirror = FF_LAYOUT_COMP(lseg, idx);
1832 ds = nfs4_ff_layout_prepare_ds(lseg, mirror, true);
1841 ds_cred = ff_layout_get_ds_cred(mirror, &lseg->pls_range, hdr->cred);
1877 if (ff_layout_avoid_mds_available_ds(lseg))
1881 IOMODE_RW, NFS_I(hdr->inode)->layout, lseg);
1885 static u32 calc_ds_index_from_commit(struct pnfs_layout_segment *lseg, u32 i)
1891 select_ds_fh_from_commit(struct pnfs_layout_segment *lseg, u32 i)
1893 struct nfs4_ff_layout_segment *flseg = FF_LAYOUT_LSEG(lseg);
1903 struct pnfs_layout_segment *lseg = data->lseg;
1912 if (!lseg || !(pnfs_is_valid_lseg(lseg) ||
1913 test_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags)))
1916 idx = calc_ds_index_from_commit(lseg, data->ds_commit_index);
1917 mirror = FF_LAYOUT_COMP(lseg, idx);
1918 ds = nfs4_ff_layout_prepare_ds(lseg, mirror, true);
1927 ds_cred = ff_layout_get_ds_cred(mirror, &lseg->pls_range, data->cred);
1940 fh = select_ds_fh_from_commit(lseg, data->ds_commit_index);
1977 struct pnfs_layout_segment *lseg)
1979 struct nfs4_ff_layout_segment *flseg = FF_LAYOUT_LSEG(lseg);
1980 struct inode *inode = lseg->pls_layout->plh_inode;
1986 array = pnfs_add_commit_array(fl_cinfo, new, lseg);
2190 ff_layout_send_layouterror(struct pnfs_layout_segment *lseg)
2192 struct pnfs_layout_hdr *lo = lseg->pls_layout;
2198 ff_layout_fetch_ds_ioerr(lo, &lseg->pls_range, &head, -1);
2219 if (nfs42_proc_layouterror(lseg, errors, n) < 0)
2229 ff_layout_send_layouterror(struct pnfs_layout_segment *lseg)