Lines Matching refs:lseg
74 filelayout_get_dserver_offset(struct pnfs_layout_segment *lseg, loff_t offset)
76 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg);
126 struct pnfs_layout_segment *lseg)
128 struct pnfs_layout_hdr *lo = lseg->pls_layout;
130 struct nfs4_deviceid_node *devid = FILELAYOUT_DEVID_NODE(lseg);
168 * Layout will not be destroyed until all current lseg
187 pnfs_error_mark_layout_for_return(inode, lseg);
188 pnfs_set_lo_fail(lseg);
210 hdr->ds_clp, hdr->lseg);
234 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds ||
241 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, end_offs);
254 filelayout_reset_to_mds(struct pnfs_layout_segment *lseg)
256 struct nfs4_deviceid_node *node = FILELAYOUT_DEVID_NODE(lseg);
274 if (filelayout_reset_to_mds(hdr->lseg)) {
322 hdr->ds_clp, hdr->lseg);
350 data->lseg);
361 pnfs_set_layoutcommit(data->inode, data->lseg, data->lwb);
374 if (filelayout_reset_to_mds(hdr->lseg)) {
452 struct pnfs_layout_segment *lseg = hdr->lseg;
464 j = nfs4_fl_calc_j_index(lseg, offset);
465 idx = nfs4_fl_calc_ds_index(lseg, j);
466 ds = nfs4_fl_prepare_ds(lseg, idx);
481 fh = nfs4_fl_select_ds_fh(lseg, j);
485 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset);
499 struct pnfs_layout_segment *lseg = hdr->lseg;
507 j = nfs4_fl_calc_j_index(lseg, offset);
508 idx = nfs4_fl_calc_ds_index(lseg, j);
509 ds = nfs4_fl_prepare_ds(lseg, idx);
525 fh = nfs4_fl_select_ds_fh(lseg, j);
528 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset);
594 * At this point no generic layer initialization of the lseg has occurred,
744 filelayout_free_lseg(struct pnfs_layout_segment *lseg)
746 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg);
751 /* This assumes a single RW lseg */
752 if (lseg->pls_range.iomode == IOMODE_RW) {
756 flo = FILELAYOUT_FROM_HDR(lseg->pls_layout);
759 pnfs_generic_ds_cinfo_release_lseg(&flo->commit_info, lseg);
845 struct pnfs_layout_segment *lseg = NULL;
850 lseg = pnfs_update_layout(ino, ctx, pos, count, iomode, strict_iomode,
852 if (IS_ERR_OR_NULL(lseg))
856 fl = FILELAYOUT_LSEG(lseg);
860 pnfs_put_lseg(lseg);
861 lseg = NULL;
864 return lseg;
886 /* If no lseg, fall back to read through mds */
911 /* If no lseg, fall back to write through mds */
940 struct pnfs_layout_segment *lseg,
945 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg);
957 j = nfs4_fl_calc_j_index(lseg, req_offset(req));
959 pnfs_layout_mark_request_commit(req, lseg, cinfo, i);
963 static u32 calc_ds_index_from_commit(struct pnfs_layout_segment *lseg, u32 i)
965 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg);
970 return nfs4_fl_calc_ds_index(lseg, i);
974 select_ds_fh_from_commit(struct pnfs_layout_segment *lseg, u32 i)
976 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg);
990 struct pnfs_layout_segment *lseg = data->lseg;
996 idx = calc_ds_index_from_commit(lseg, data->ds_commit_index);
997 ds = nfs4_fl_prepare_ds(lseg, idx);
1010 fh = select_ds_fh_from_commit(lseg, data->ds_commit_index);
1080 struct pnfs_layout_segment *lseg)
1082 struct nfs4_filelayout_segment *fl = FILELAYOUT_LSEG(lseg);
1083 struct inode *inode = lseg->pls_layout->plh_inode;
1091 array = pnfs_add_commit_array(fl_cinfo, new, lseg);