Lines Matching refs:lseg

341 		struct pnfs_layout_segment *lseg,  in ff_layout_add_lseg()  argument
344 pnfs_generic_layout_insert_lseg(lo, lseg, in ff_layout_add_lseg()
556 struct pnfs_layout_segment *lseg; in ff_layout_has_rw_segments() local
558 list_for_each_entry(lseg, &layout->plh_segs, pls_list) in ff_layout_has_rw_segments()
559 if (lseg->pls_range.iomode == IOMODE_RW) in ff_layout_has_rw_segments()
566 ff_layout_free_lseg(struct pnfs_layout_segment *lseg) in ff_layout_free_lseg() argument
568 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in ff_layout_free_lseg()
572 if (lseg->pls_range.iomode == IOMODE_RW) { in ff_layout_free_lseg()
576 ffl = FF_LAYOUT_FROM_HDR(lseg->pls_layout); in ff_layout_free_lseg()
579 if (!ff_layout_has_rw_segments(lseg->pls_layout)) { in ff_layout_free_lseg()
741 ff_layout_alloc_commit_info(struct pnfs_layout_segment *lseg, in ff_layout_alloc_commit_info() argument
745 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in ff_layout_alloc_commit_info()
758 size = ff_layout_get_lseg_count(fls) * FF_LAYOUT_MIRROR_COUNT(lseg); in ff_layout_alloc_commit_info()
787 ff_layout_choose_best_ds_for_read(struct pnfs_layout_segment *lseg, in ff_layout_choose_best_ds_for_read() argument
791 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in ff_layout_choose_best_ds_for_read()
800 ds = nfs4_ff_layout_prepare_ds(lseg, idx, fail_return); in ff_layout_choose_best_ds_for_read()
1042 struct pnfs_layout_segment *lseg, in ff_layout_async_handle_error_v4() argument
1045 struct pnfs_layout_hdr *lo = lseg->pls_layout; in ff_layout_async_handle_error_v4()
1047 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx); in ff_layout_async_handle_error_v4()
1103 if (ff_layout_avoid_mds_available_ds(lseg)) in ff_layout_async_handle_error_v4()
1116 struct pnfs_layout_segment *lseg, in ff_layout_async_handle_error_v3() argument
1119 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx); in ff_layout_async_handle_error_v3()
1131 nfs_inc_stats(lseg->pls_layout->plh_inode, NFSIOS_DELAY); in ff_layout_async_handle_error_v3()
1151 struct pnfs_layout_segment *lseg, in ff_layout_async_handle_error() argument
1160 if (!pnfs_is_valid_lseg(lseg)) in ff_layout_async_handle_error()
1165 return ff_layout_async_handle_error_v3(task, lseg, idx); in ff_layout_async_handle_error()
1168 lseg, idx); in ff_layout_async_handle_error()
1176 static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg, in ff_layout_io_track_ds_error() argument
1216 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_layout_io_track_ds_error()
1217 err = ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), in ff_layout_io_track_ds_error()
1220 pnfs_error_mark_layout_for_return(lseg->pls_layout->plh_inode, lseg); in ff_layout_io_track_ds_error()
1232 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx, in ff_layout_read_done_cb()
1237 hdr->ds_clp, hdr->lseg, in ff_layout_read_done_cb()
1244 if (ff_layout_choose_best_ds_for_read(hdr->lseg, in ff_layout_read_done_cb()
1264 ff_layout_need_layoutcommit(struct pnfs_layout_segment *lseg) in ff_layout_need_layoutcommit() argument
1266 return !(FF_LAYOUT_LSEG(lseg)->flags & FF_FLAGS_NO_LAYOUTCOMMIT); in ff_layout_need_layoutcommit()
1280 struct pnfs_layout_segment *lseg, in ff_layout_set_layoutcommit() argument
1283 if (!ff_layout_need_layoutcommit(lseg)) in ff_layout_set_layoutcommit()
1286 pnfs_set_layoutcommit(inode, lseg, end_offset); in ff_layout_set_layoutcommit()
1292 ff_layout_device_unavailable(struct pnfs_layout_segment *lseg, int idx) in ff_layout_device_unavailable() argument
1295 struct nfs4_deviceid_node *node = FF_LAYOUT_DEVID_NODE(lseg, idx); in ff_layout_device_unavailable()
1306 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_read_record_layoutstats_start()
1317 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_read_record_layoutstats_done()
1320 set_bit(NFS_LSEG_LAYOUTRETURN, &hdr->lseg->pls_flags); in ff_layout_read_record_layoutstats_done()
1330 if (ff_layout_device_unavailable(hdr->lseg, hdr->pgio_mirror_idx)) { in ff_layout_read_prepare_common()
1418 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx, in ff_layout_write_done_cb()
1423 hdr->ds_clp, hdr->lseg, in ff_layout_write_done_cb()
1444 ff_layout_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); in ff_layout_write_done_cb()
1461 ff_layout_io_track_ds_error(data->lseg, data->ds_commit_index, in ff_layout_commit_done_cb()
1466 data->lseg, data->ds_commit_index); in ff_layout_commit_done_cb()
1480 ff_layout_set_layoutcommit(data->inode, data->lseg, data->lwb); in ff_layout_commit_done_cb()
1491 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_write_record_layoutstats_start()
1502 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_write_record_layoutstats_done()
1505 set_bit(NFS_LSEG_LAYOUTRETURN, &hdr->lseg->pls_flags); in ff_layout_write_record_layoutstats_done()
1516 if (ff_layout_device_unavailable(hdr->lseg, hdr->pgio_mirror_idx)) { in ff_layout_write_prepare_common()
1594 FF_LAYOUT_COMP(cdata->lseg, cdata->ds_commit_index), in ff_layout_commit_record_layoutstats_start()
1612 FF_LAYOUT_COMP(cdata->lseg, cdata->ds_commit_index), in ff_layout_commit_record_layoutstats_done()
1614 set_bit(NFS_LSEG_LAYOUTRETURN, &cdata->lseg->pls_flags); in ff_layout_commit_record_layoutstats_done()
1708 struct pnfs_layout_segment *lseg = hdr->lseg; in ff_layout_read_pagelist() local
1721 ds = nfs4_ff_layout_prepare_ds(lseg, idx, false); in ff_layout_read_pagelist()
1725 ds_clnt = nfs4_ff_find_or_create_ds_client(lseg, idx, ds->ds_clp, in ff_layout_read_pagelist()
1730 ds_cred = ff_layout_get_ds_cred(lseg, idx, hdr->cred); in ff_layout_read_pagelist()
1734 vers = nfs4_ff_layout_ds_version(lseg, idx); in ff_layout_read_pagelist()
1742 fh = nfs4_ff_layout_select_ds_fh(lseg, idx); in ff_layout_read_pagelist()
1761 if (ff_layout_avoid_mds_available_ds(lseg)) in ff_layout_read_pagelist()
1770 struct pnfs_layout_segment *lseg = hdr->lseg; in ff_layout_write_pagelist() local
1779 ds = nfs4_ff_layout_prepare_ds(lseg, idx, true); in ff_layout_write_pagelist()
1783 ds_clnt = nfs4_ff_find_or_create_ds_client(lseg, idx, ds->ds_clp, in ff_layout_write_pagelist()
1788 ds_cred = ff_layout_get_ds_cred(lseg, idx, hdr->cred); in ff_layout_write_pagelist()
1792 vers = nfs4_ff_layout_ds_version(lseg, idx); in ff_layout_write_pagelist()
1803 fh = nfs4_ff_layout_select_ds_fh(lseg, idx); in ff_layout_write_pagelist()
1822 if (ff_layout_avoid_mds_available_ds(lseg)) in ff_layout_write_pagelist()
1827 static u32 calc_ds_index_from_commit(struct pnfs_layout_segment *lseg, u32 i) in calc_ds_index_from_commit() argument
1833 select_ds_fh_from_commit(struct pnfs_layout_segment *lseg, u32 i) in select_ds_fh_from_commit() argument
1835 struct nfs4_ff_layout_segment *flseg = FF_LAYOUT_LSEG(lseg); in select_ds_fh_from_commit()
1845 struct pnfs_layout_segment *lseg = data->lseg; in ff_layout_initiate_commit() local
1853 if (!lseg || !(pnfs_is_valid_lseg(lseg) || in ff_layout_initiate_commit()
1854 test_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags))) in ff_layout_initiate_commit()
1857 idx = calc_ds_index_from_commit(lseg, data->ds_commit_index); in ff_layout_initiate_commit()
1858 ds = nfs4_ff_layout_prepare_ds(lseg, idx, true); in ff_layout_initiate_commit()
1862 ds_clnt = nfs4_ff_find_or_create_ds_client(lseg, idx, ds->ds_clp, in ff_layout_initiate_commit()
1867 ds_cred = ff_layout_get_ds_cred(lseg, idx, data->cred); in ff_layout_initiate_commit()
1871 vers = nfs4_ff_layout_ds_version(lseg, idx); in ff_layout_initiate_commit()
1880 fh = select_ds_fh_from_commit(lseg, data->ds_commit_index); in ff_layout_initiate_commit()