Lines Matching refs:lseg
24 static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg);
186 static void ff_layout_mark_devid_invalid(struct pnfs_layout_segment *lseg, in ff_layout_mark_devid_invalid() argument
190 if (!ff_layout_has_available_ds(lseg)) in ff_layout_mark_devid_invalid()
191 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode, in ff_layout_mark_devid_invalid()
192 lseg); in ff_layout_mark_devid_invalid()
195 static bool ff_layout_mirror_valid(struct pnfs_layout_segment *lseg, in ff_layout_mirror_valid() argument
204 struct pnfs_layout_hdr *lh = lseg->pls_layout; in ff_layout_mirror_valid()
227 ff_layout_mark_devid_invalid(lseg, devid); in ff_layout_mirror_valid()
232 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode, lseg); in ff_layout_mirror_valid()
356 nfs4_ff_layout_select_ds_fh(struct pnfs_layout_segment *lseg, u32 mirror_idx) in nfs4_ff_layout_select_ds_fh() argument
358 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, mirror_idx); in nfs4_ff_layout_select_ds_fh()
361 if (!ff_layout_mirror_valid(lseg, mirror, false)) { in nfs4_ff_layout_select_ds_fh()
391 nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, u32 ds_idx, in nfs4_ff_layout_prepare_ds() argument
394 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_layout_prepare_ds()
397 struct inode *ino = lseg->pls_layout->plh_inode; in nfs4_ff_layout_prepare_ds()
402 if (!ff_layout_mirror_valid(lseg, mirror, true)) { in nfs4_ff_layout_prepare_ds()
438 ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), in nfs4_ff_layout_prepare_ds()
439 mirror, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds()
440 lseg->pls_range.length, NFS4ERR_NXIO, in nfs4_ff_layout_prepare_ds()
442 if (fail_return || !ff_layout_has_available_ds(lseg)) in nfs4_ff_layout_prepare_ds()
443 pnfs_error_mark_layout_for_return(ino, lseg); in nfs4_ff_layout_prepare_ds()
450 ff_layout_get_ds_cred(struct pnfs_layout_segment *lseg, u32 ds_idx, in ff_layout_get_ds_cred() argument
453 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in ff_layout_get_ds_cred()
457 cred = ff_layout_get_mirror_cred(mirror, lseg->pls_range.iomode); in ff_layout_get_ds_cred()
471 nfs4_ff_find_or_create_ds_client(struct pnfs_layout_segment *lseg, u32 ds_idx, in nfs4_ff_find_or_create_ds_client() argument
474 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_find_or_create_ds_client()
578 static bool ff_read_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_read_layout_has_available_ds() argument
584 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) { in ff_read_layout_has_available_ds()
585 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_read_layout_has_available_ds()
600 static bool ff_rw_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_rw_layout_has_available_ds() argument
606 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) { in ff_rw_layout_has_available_ds()
607 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_rw_layout_has_available_ds()
617 return FF_LAYOUT_MIRROR_COUNT(lseg) != 0; in ff_rw_layout_has_available_ds()
620 static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_layout_has_available_ds() argument
622 if (lseg->pls_range.iomode == IOMODE_READ) in ff_layout_has_available_ds()
623 return ff_read_layout_has_available_ds(lseg); in ff_layout_has_available_ds()
625 return ff_rw_layout_has_available_ds(lseg); in ff_layout_has_available_ds()
628 bool ff_layout_avoid_mds_available_ds(struct pnfs_layout_segment *lseg) in ff_layout_avoid_mds_available_ds() argument
630 return ff_layout_no_fallback_to_mds(lseg) || in ff_layout_avoid_mds_available_ds()
631 ff_layout_has_available_ds(lseg); in ff_layout_avoid_mds_available_ds()
634 bool ff_layout_avoid_read_on_rw(struct pnfs_layout_segment *lseg) in ff_layout_avoid_read_on_rw() argument
636 return lseg->pls_range.iomode == IOMODE_RW && in ff_layout_avoid_read_on_rw()
637 ff_layout_no_read_on_rw(lseg); in ff_layout_avoid_read_on_rw()