Lines Matching refs:lseg

24 static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg);
353 * @lseg: the layout segment we're operating on
369 nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg,
374 struct inode *ino = lseg->pls_layout->plh_inode;
379 if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror))
408 ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout),
409 mirror, lseg->pls_range.offset,
410 lseg->pls_range.length, NFS4ERR_NXIO,
412 ff_layout_send_layouterror(lseg);
413 if (fail_return || !ff_layout_has_available_ds(lseg))
414 pnfs_error_mark_layout_for_return(ino, lseg);
552 static bool ff_read_layout_has_available_ds(struct pnfs_layout_segment *lseg)
558 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) {
559 mirror = FF_LAYOUT_COMP(lseg, idx);
574 static bool ff_rw_layout_has_available_ds(struct pnfs_layout_segment *lseg)
580 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) {
581 mirror = FF_LAYOUT_COMP(lseg, idx);
591 return FF_LAYOUT_MIRROR_COUNT(lseg) != 0;
594 static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg)
596 if (lseg->pls_range.iomode == IOMODE_READ)
597 return ff_read_layout_has_available_ds(lseg);
599 return ff_rw_layout_has_available_ds(lseg);
602 bool ff_layout_avoid_mds_available_ds(struct pnfs_layout_segment *lseg)
604 return ff_layout_no_fallback_to_mds(lseg) ||
605 ff_layout_has_available_ds(lseg);
608 bool ff_layout_avoid_read_on_rw(struct pnfs_layout_segment *lseg)
610 return lseg->pls_range.iomode == IOMODE_RW &&
611 ff_layout_no_read_on_rw(lseg);