Lines Matching refs:lseg

175 static void ff_layout_mark_devid_invalid(struct pnfs_layout_segment *lseg,  in ff_layout_mark_devid_invalid()  argument
179 if (!ff_layout_has_available_ds(lseg)) in ff_layout_mark_devid_invalid()
180 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode, in ff_layout_mark_devid_invalid()
181 lseg); in ff_layout_mark_devid_invalid()
184 static bool ff_layout_mirror_valid(struct pnfs_layout_segment *lseg, in ff_layout_mirror_valid() argument
188 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode, in ff_layout_mirror_valid()
189 lseg); in ff_layout_mirror_valid()
195 ff_layout_mark_devid_invalid(lseg, devid); in ff_layout_mirror_valid()
361 nfs4_ff_layout_select_ds_fh(struct pnfs_layout_segment *lseg, u32 mirror_idx) in nfs4_ff_layout_select_ds_fh() argument
363 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, mirror_idx); in nfs4_ff_layout_select_ds_fh()
366 if (!ff_layout_mirror_valid(lseg, mirror)) { in nfs4_ff_layout_select_ds_fh()
380 nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, u32 ds_idx, in nfs4_ff_layout_prepare_ds() argument
383 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_layout_prepare_ds()
386 struct inode *ino = lseg->pls_layout->plh_inode; in nfs4_ff_layout_prepare_ds()
391 if (!ff_layout_mirror_valid(lseg, mirror)) { in nfs4_ff_layout_prepare_ds()
428 ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), in nfs4_ff_layout_prepare_ds()
429 mirror, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds()
430 lseg->pls_range.length, NFS4ERR_NXIO, in nfs4_ff_layout_prepare_ds()
433 pnfs_error_mark_layout_for_return(ino, lseg); in nfs4_ff_layout_prepare_ds()
434 if (ff_layout_has_available_ds(lseg)) in nfs4_ff_layout_prepare_ds()
435 pnfs_set_retry_layoutget(lseg->pls_layout); in nfs4_ff_layout_prepare_ds()
437 pnfs_clear_retry_layoutget(lseg->pls_layout); in nfs4_ff_layout_prepare_ds()
440 if (ff_layout_has_available_ds(lseg)) in nfs4_ff_layout_prepare_ds()
442 &lseg->pls_layout->plh_flags); in nfs4_ff_layout_prepare_ds()
444 pnfs_error_mark_layout_for_return(ino, lseg); in nfs4_ff_layout_prepare_ds()
445 pnfs_clear_retry_layoutget(lseg->pls_layout); in nfs4_ff_layout_prepare_ds()
457 ff_layout_get_ds_cred(struct pnfs_layout_segment *lseg, u32 ds_idx, in ff_layout_get_ds_cred() argument
460 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in ff_layout_get_ds_cred()
463 if (!nfs4_ff_layout_prepare_ds(lseg, ds_idx, true)) in ff_layout_get_ds_cred()
479 nfs4_ff_find_or_create_ds_client(struct pnfs_layout_segment *lseg, u32 ds_idx, in nfs4_ff_find_or_create_ds_client() argument
482 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_find_or_create_ds_client()
546 static bool ff_read_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_read_layout_has_available_ds() argument
552 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) { in ff_read_layout_has_available_ds()
553 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_read_layout_has_available_ds()
564 static bool ff_rw_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_rw_layout_has_available_ds() argument
570 for (idx = 0; idx < FF_LAYOUT_MIRROR_COUNT(lseg); idx++) { in ff_rw_layout_has_available_ds()
571 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_rw_layout_has_available_ds()
579 return FF_LAYOUT_MIRROR_COUNT(lseg) != 0; in ff_rw_layout_has_available_ds()
582 bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg) in ff_layout_has_available_ds() argument
584 if (lseg->pls_range.iomode == IOMODE_READ) in ff_layout_has_available_ds()
585 return ff_read_layout_has_available_ds(lseg); in ff_layout_has_available_ds()
587 return ff_rw_layout_has_available_ds(lseg); in ff_layout_has_available_ds()