/linux-6.12.1/fs/nfs/ |
D | pnfs.c | 62 static bool pnfs_lseg_dec_and_remove_zero(struct pnfs_layout_segment *lseg, 376 struct pnfs_layout_segment *lseg; in pnfs_clear_layoutreturn_info() local 380 list_for_each_entry(lseg, &lo->plh_segs, pls_list) { in pnfs_clear_layoutreturn_info() 381 if (!test_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags)) in pnfs_clear_layoutreturn_info() 383 pnfs_set_plh_return_info(lo, lseg->pls_range.iomode, 0); in pnfs_clear_layoutreturn_info() 397 pnfs_clear_lseg_state(struct pnfs_layout_segment *lseg, in pnfs_clear_lseg_state() argument 400 clear_bit(NFS_LSEG_ROC, &lseg->pls_flags); in pnfs_clear_lseg_state() 401 clear_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags); in pnfs_clear_lseg_state() 402 if (test_and_clear_bit(NFS_LSEG_VALID, &lseg->pls_flags)) in pnfs_clear_lseg_state() 403 pnfs_lseg_dec_and_remove_zero(lseg, free_me); in pnfs_clear_lseg_state() [all …]
|
D | pnfs.h | 145 void (*free_lseg) (struct pnfs_layout_segment *lseg); 147 struct pnfs_layout_segment *lseg, 179 void (*cancel_io)(struct pnfs_layout_segment *lseg); 192 struct pnfs_layout_segment *lseg, 263 void pnfs_put_lseg(struct pnfs_layout_segment *lseg); 276 void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg); 341 struct pnfs_layout_segment *lseg, 344 bool (*do_merge)(struct pnfs_layout_segment *lseg, 353 struct pnfs_layout_segment *lseg); 399 struct pnfs_layout_segment *lseg); [all …]
|
D | pnfs_nfs.c | 56 pnfs_put_lseg(data->lseg); in pnfs_generic_commit_release() 66 struct pnfs_layout_segment *freeme = bucket->lseg; in pnfs_free_bucket_lseg() 67 bucket->lseg = NULL; in pnfs_free_bucket_lseg() 108 p->lseg = NULL; in pnfs_alloc_commit_array() 112 b->lseg = NULL; in pnfs_alloc_commit_array() 128 struct pnfs_layout_segment *lseg) in pnfs_find_commit_array_by_lseg() argument 133 if (array->lseg == lseg) in pnfs_find_commit_array_by_lseg() 142 struct pnfs_layout_segment *lseg) in pnfs_add_commit_array() argument 146 array = pnfs_find_commit_array_by_lseg(fl_cinfo, lseg); in pnfs_add_commit_array() 149 new->lseg = lseg; in pnfs_add_commit_array() [all …]
|
D | nfs4trace.h | 1499 #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) \ argument 1500 (lseg ? nfs_stateid_hash(&lseg->pls_layout->plh_stateid) : 0) 1502 #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) (0) argument 1534 const struct pnfs_layout_segment *lseg = hdr->lseg; 1547 __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0; 1549 NFS4_LSEG_LAYOUT_STATEID_HASH(lseg); 1608 const struct pnfs_layout_segment *lseg = hdr->lseg; 1621 __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0; 1623 NFS4_LSEG_LAYOUT_STATEID_HASH(lseg); 1678 const struct pnfs_layout_segment *lseg = data->lseg; [all …]
|
D | nfs42proc.c | 882 nfs42_alloc_layouterror_data(struct pnfs_layout_segment *lseg, gfp_t gfp_flags) in nfs42_alloc_layouterror_data() argument 885 struct inode *inode = lseg->pls_layout->plh_inode; in nfs42_alloc_layouterror_data() 891 data->lseg = pnfs_get_lseg(lseg); in nfs42_alloc_layouterror_data() 892 if (data->lseg) in nfs42_alloc_layouterror_data() 904 pnfs_put_lseg(data->lseg); in nfs42_free_layouterror_data() 915 struct pnfs_layout_hdr *lo = data->lseg->pls_layout; in nfs42_layouterror_prepare() 937 struct pnfs_layout_hdr *lo = data->lseg->pls_layout; in nfs42_layouterror_done() 1007 int nfs42_proc_layouterror(struct pnfs_layout_segment *lseg, in nfs42_proc_layouterror() argument 1010 struct inode *inode = lseg->pls_layout->plh_inode; in nfs42_proc_layouterror() 1027 data = nfs42_alloc_layouterror_data(lseg, nfs_io_gfp_mask()); in nfs42_proc_layouterror()
|
D | write.c | 910 nfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg, in nfs_mark_request_commit() argument 913 if (pnfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx)) in nfs_mark_request_commit() 949 return hdr->lseg == NULL; in nfs_write_need_commit() 982 nfs_mark_request_commit(req, hdr->lseg, &cinfo, in nfs_write_completion() 1727 struct pnfs_layout_segment *lseg, in nfs_init_commit() argument 1746 data->lseg = lseg; /* reference transferred */ in nfs_init_commit() 1748 if (lseg) in nfs_init_commit() 1767 struct pnfs_layout_segment *lseg, in nfs_retry_commit() argument 1776 nfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx); in nfs_retry_commit()
|
D | nfs42.h | 28 int nfs42_proc_layouterror(struct pnfs_layout_segment *lseg,
|
D | internal.h | 582 struct pnfs_layout_segment *lseg, 590 struct pnfs_layout_segment *lseg, 598 struct pnfs_layout_segment *lseg,
|
D | direct.c | 764 nfs_mark_request_commit(req, hdr->lseg, &cinfo, in nfs_direct_write_completion()
|
D | nfs4proc.c | 9935 struct pnfs_layout_segment *lseg = NULL; in nfs4_proc_layoutget() local 9957 lseg = pnfs_layout_process(lgp); in nfs4_proc_layoutget() 9969 return lseg; in nfs4_proc_layoutget()
|
/linux-6.12.1/fs/nfs/filelayout/ |
D | filelayout.c | 74 filelayout_get_dserver_offset(struct pnfs_layout_segment *lseg, loff_t offset) in filelayout_get_dserver_offset() argument 76 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg); in filelayout_get_dserver_offset() 126 struct pnfs_layout_segment *lseg) in filelayout_async_handle_error() argument 128 struct pnfs_layout_hdr *lo = lseg->pls_layout; in filelayout_async_handle_error() 130 struct nfs4_deviceid_node *devid = FILELAYOUT_DEVID_NODE(lseg); in filelayout_async_handle_error() 189 pnfs_error_mark_layout_for_return(inode, lseg); in filelayout_async_handle_error() 190 pnfs_set_lo_fail(lseg); in filelayout_async_handle_error() 212 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb() 236 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit() 243 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); in filelayout_set_layoutcommit() [all …]
|
D | filelayout.h | 82 FILELAYOUT_LSEG(struct pnfs_layout_segment *lseg) in FILELAYOUT_LSEG() argument 84 return container_of(lseg, in FILELAYOUT_LSEG() 90 FILELAYOUT_DEVID_NODE(struct pnfs_layout_segment *lseg) in FILELAYOUT_DEVID_NODE() argument 92 return &FILELAYOUT_LSEG(lseg)->dsaddr->id_node; in FILELAYOUT_DEVID_NODE() 105 nfs4_fl_select_ds_fh(struct pnfs_layout_segment *lseg, u32 j); 107 u32 nfs4_fl_calc_j_index(struct pnfs_layout_segment *lseg, loff_t offset); 108 u32 nfs4_fl_calc_ds_index(struct pnfs_layout_segment *lseg, u32 j); 109 struct nfs4_pnfs_ds *nfs4_fl_prepare_ds(struct pnfs_layout_segment *lseg,
|
D | filelayoutdev.c | 224 nfs4_fl_calc_j_index(struct pnfs_layout_segment *lseg, loff_t offset) in nfs4_fl_calc_j_index() argument 226 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg); in nfs4_fl_calc_j_index() 236 nfs4_fl_calc_ds_index(struct pnfs_layout_segment *lseg, u32 j) in nfs4_fl_calc_ds_index() argument 238 return FILELAYOUT_LSEG(lseg)->dsaddr->stripe_indices[j]; in nfs4_fl_calc_ds_index() 242 nfs4_fl_select_ds_fh(struct pnfs_layout_segment *lseg, u32 j) in nfs4_fl_select_ds_fh() argument 244 struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg); in nfs4_fl_select_ds_fh() 254 i = nfs4_fl_calc_ds_index(lseg, j); in nfs4_fl_select_ds_fh() 262 nfs4_fl_prepare_ds(struct pnfs_layout_segment *lseg, u32 ds_idx) in nfs4_fl_prepare_ds() argument 264 struct nfs4_file_layout_dsaddr *dsaddr = FILELAYOUT_LSEG(lseg)->dsaddr; in nfs4_fl_prepare_ds() 266 struct nfs4_deviceid_node *devid = FILELAYOUT_DEVID_NODE(lseg); in nfs4_fl_prepare_ds() [all …]
|
/linux-6.12.1/fs/nfs/flexfilelayout/ |
D | flexfilelayout.h | 128 FF_LAYOUT_LSEG(struct pnfs_layout_segment *lseg) in FF_LAYOUT_LSEG() argument 130 return container_of(lseg, in FF_LAYOUT_LSEG() 142 FF_LAYOUT_COMP(struct pnfs_layout_segment *lseg, u32 idx) in FF_LAYOUT_COMP() argument 144 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in FF_LAYOUT_COMP() 152 FF_LAYOUT_DEVID_NODE(struct pnfs_layout_segment *lseg, u32 idx) in FF_LAYOUT_DEVID_NODE() argument 154 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, idx); in FF_LAYOUT_DEVID_NODE() 166 FF_LAYOUT_MIRROR_COUNT(struct pnfs_layout_segment *lseg) in FF_LAYOUT_MIRROR_COUNT() argument 168 return FF_LAYOUT_LSEG(lseg)->mirror_array_cnt; in FF_LAYOUT_MIRROR_COUNT() 172 ff_layout_no_fallback_to_mds(struct pnfs_layout_segment *lseg) in ff_layout_no_fallback_to_mds() argument 174 return FF_LAYOUT_LSEG(lseg)->flags & FF_FLAGS_NO_IO_THRU_MDS; in ff_layout_no_fallback_to_mds() [all …]
|
D | flexfilelayout.c | 359 struct pnfs_layout_segment *lseg, in ff_layout_add_lseg() argument 362 pnfs_generic_layout_insert_lseg(lo, lseg, in ff_layout_add_lseg() 576 ff_layout_free_lseg(struct pnfs_layout_segment *lseg) in ff_layout_free_lseg() argument 578 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in ff_layout_free_lseg() 582 if (lseg->pls_range.iomode == IOMODE_RW) { in ff_layout_free_lseg() 586 ffl = FF_LAYOUT_FROM_HDR(lseg->pls_layout); in ff_layout_free_lseg() 589 pnfs_generic_ds_cinfo_release_lseg(&ffl->commit_info, lseg); in ff_layout_free_lseg() 740 ff_layout_mark_ds_unreachable(struct pnfs_layout_segment *lseg, u32 idx) in ff_layout_mark_ds_unreachable() argument 742 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx); in ff_layout_mark_ds_unreachable() 749 ff_layout_mark_ds_reachable(struct pnfs_layout_segment *lseg, u32 idx) in ff_layout_mark_ds_reachable() argument [all …]
|
D | flexfilelayoutdev.c | 24 static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg); 369 nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, in nfs4_ff_layout_prepare_ds() argument 374 struct inode *ino = lseg->pls_layout->plh_inode; in nfs4_ff_layout_prepare_ds() 379 if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror)) in nfs4_ff_layout_prepare_ds() 414 ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), in nfs4_ff_layout_prepare_ds() 415 mirror, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds() 416 lseg->pls_range.length, NFS4ERR_NXIO, in nfs4_ff_layout_prepare_ds() 418 ff_layout_send_layouterror(lseg); in nfs4_ff_layout_prepare_ds() 419 if (fail_return || !ff_layout_has_available_ds(lseg)) in nfs4_ff_layout_prepare_ds() 420 pnfs_error_mark_layout_for_return(ino, lseg); in nfs4_ff_layout_prepare_ds() [all …]
|
/linux-6.12.1/Documentation/filesystems/nfs/ |
D | pnfs.rst | 16 pnfs_layout_segment, usually referred to by the variable name lseg. 22 LAYOUTCOMMIT), and for each lseg held within. 26 the reference count, as the layout is kept around by the lseg that 36 the lifetime of each lseg referencing them. 54 lseg chapter 57 lseg maintains an extra reference corresponding to the NFS_LSEG_VALID 58 bit which holds it in the pnfs_layout_hdr's list. When the final lseg
|
/linux-6.12.1/fs/nfs/blocklayout/ |
D | blocklayout.c | 171 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_mark_devices_unavailable() 201 pnfs_set_lo_fail(header->lseg); in bl_end_io_read() 232 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_read_pagelist() 331 pnfs_set_lo_fail(header->lseg); in bl_end_io_write() 350 struct pnfs_block_layout *bl = BLK_LSEG2EXT(hdr->lseg); in bl_write_cleanup() 377 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_write_pagelist() 488 static void bl_free_lseg(struct pnfs_layout_segment *lseg) in bl_free_lseg() argument 491 kfree(lseg); in bl_free_lseg() 663 struct pnfs_layout_segment *lseg; in bl_alloc_lseg() local 674 lseg = kzalloc(sizeof(*lseg), gfp_mask); in bl_alloc_lseg() [all …]
|
D | blocklayout.h | 159 BLK_LSEG2EXT(struct pnfs_layout_segment *lseg) in BLK_LSEG2EXT() argument 161 return BLK_LO2EXT(lseg->pls_layout); in BLK_LSEG2EXT()
|
/linux-6.12.1/arch/x86/kernel/ |
D | module.c | 303 void *lseg = (void *)locks->sh_addr; in module_finalize() local 307 lseg, lseg + locks->sh_size, in module_finalize()
|
/linux-6.12.1/include/linux/ |
D | nfs_xdr.h | 425 struct pnfs_layout_segment *lseg; member 1328 struct pnfs_layout_segment *lseg; member 1335 struct pnfs_layout_segment *lseg; member 1650 struct pnfs_layout_segment *lseg; member 1717 struct pnfs_layout_segment *lseg; member
|