/Linux-v5.15/fs/nfs/ |
D | pnfs.c | 62 static bool pnfs_lseg_dec_and_remove_zero(struct pnfs_layout_segment *lseg, 364 struct pnfs_layout_segment *lseg; in pnfs_clear_layoutreturn_info() local 368 list_for_each_entry(lseg, &lo->plh_segs, pls_list) { in pnfs_clear_layoutreturn_info() 369 if (!test_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags)) in pnfs_clear_layoutreturn_info() 371 pnfs_set_plh_return_info(lo, lseg->pls_range.iomode, 0); in pnfs_clear_layoutreturn_info() 385 pnfs_clear_lseg_state(struct pnfs_layout_segment *lseg, in pnfs_clear_lseg_state() argument 388 clear_bit(NFS_LSEG_ROC, &lseg->pls_flags); in pnfs_clear_lseg_state() 389 clear_bit(NFS_LSEG_LAYOUTRETURN, &lseg->pls_flags); in pnfs_clear_lseg_state() 390 if (test_and_clear_bit(NFS_LSEG_VALID, &lseg->pls_flags)) in pnfs_clear_lseg_state() 391 pnfs_lseg_dec_and_remove_zero(lseg, free_me); in pnfs_clear_lseg_state() [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 | pnfs.h | 142 void (*free_lseg) (struct pnfs_layout_segment *lseg); 144 struct pnfs_layout_segment *lseg, 187 struct pnfs_layout_segment *lseg, 252 void pnfs_put_lseg(struct pnfs_layout_segment *lseg); 266 void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg); 329 struct pnfs_layout_segment *lseg, 332 bool (*do_merge)(struct pnfs_layout_segment *lseg, 341 struct pnfs_layout_segment *lseg); 386 struct pnfs_layout_segment *lseg); 417 struct pnfs_layout_segment *lseg, [all …]
|
D | nfs4trace.h | 1777 #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) \ argument 1778 (lseg ? nfs_stateid_hash(&lseg->pls_layout->plh_stateid) : 0) 1780 #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) (0) argument 1812 const struct pnfs_layout_segment *lseg = hdr->lseg; 1825 __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0; 1827 NFS4_LSEG_LAYOUT_STATEID_HASH(lseg); 1886 const struct pnfs_layout_segment *lseg = hdr->lseg; 1899 __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0; 1901 NFS4_LSEG_LAYOUT_STATEID_HASH(lseg); 1956 const struct pnfs_layout_segment *lseg = data->lseg; [all …]
|
D | nfs42proc.c | 863 nfs42_alloc_layouterror_data(struct pnfs_layout_segment *lseg, gfp_t gfp_flags) in nfs42_alloc_layouterror_data() argument 866 struct inode *inode = lseg->pls_layout->plh_inode; in nfs42_alloc_layouterror_data() 872 data->lseg = pnfs_get_lseg(lseg); in nfs42_alloc_layouterror_data() 873 if (data->lseg) in nfs42_alloc_layouterror_data() 885 pnfs_put_lseg(data->lseg); in nfs42_free_layouterror_data() 896 struct pnfs_layout_hdr *lo = data->lseg->pls_layout; in nfs42_layouterror_prepare() 918 struct pnfs_layout_hdr *lo = data->lseg->pls_layout; in nfs42_layouterror_done() 988 int nfs42_proc_layouterror(struct pnfs_layout_segment *lseg, in nfs42_proc_layouterror() argument 991 struct inode *inode = lseg->pls_layout->plh_inode; in nfs42_proc_layouterror() 1008 data = nfs42_alloc_layouterror_data(lseg, GFP_NOFS); in nfs42_proc_layouterror()
|
D | nfs42.h | 27 int nfs42_proc_layouterror(struct pnfs_layout_segment *lseg,
|
D | write.c | 942 nfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg, in nfs_mark_request_commit() argument 945 if (pnfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx)) in nfs_mark_request_commit() 980 return hdr->lseg == NULL; in nfs_write_need_commit() 1012 nfs_mark_request_commit(req, hdr->lseg, &cinfo, in nfs_write_completion() 1742 struct pnfs_layout_segment *lseg, in nfs_init_commit() argument 1761 data->lseg = lseg; /* reference transferred */ in nfs_init_commit() 1763 if (lseg) in nfs_init_commit() 1781 struct pnfs_layout_segment *lseg, in nfs_retry_commit() argument 1790 nfs_mark_request_commit(req, lseg, cinfo, ds_commit_idx); in nfs_retry_commit()
|
D | internal.h | 498 struct pnfs_layout_segment *lseg, 506 struct pnfs_layout_segment *lseg, 514 struct pnfs_layout_segment *lseg,
|
D | direct.c | 730 nfs_mark_request_commit(req, hdr->lseg, &cinfo, in nfs_direct_write_completion()
|
D | nfs4proc.c | 9573 struct pnfs_layout_segment *lseg = NULL; in nfs4_proc_layoutget() local 9597 lseg = pnfs_layout_process(lgp); in nfs4_proc_layoutget() 9609 return lseg; in nfs4_proc_layoutget()
|
/Linux-v5.15/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 | 337 struct pnfs_layout_segment *lseg, in ff_layout_add_lseg() argument 340 pnfs_generic_layout_insert_lseg(lo, lseg, in ff_layout_add_lseg() 554 ff_layout_free_lseg(struct pnfs_layout_segment *lseg) in ff_layout_free_lseg() argument 556 struct nfs4_ff_layout_segment *fls = FF_LAYOUT_LSEG(lseg); in ff_layout_free_lseg() 560 if (lseg->pls_range.iomode == IOMODE_RW) { in ff_layout_free_lseg() 564 ffl = FF_LAYOUT_FROM_HDR(lseg->pls_layout); in ff_layout_free_lseg() 567 pnfs_generic_ds_cinfo_release_lseg(&ffl->commit_info, lseg); in ff_layout_free_lseg() 718 ff_layout_mark_ds_unreachable(struct pnfs_layout_segment *lseg, u32 idx) in ff_layout_mark_ds_unreachable() argument 720 struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx); in ff_layout_mark_ds_unreachable() 727 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); 367 nfs4_ff_layout_prepare_ds(struct pnfs_layout_segment *lseg, in nfs4_ff_layout_prepare_ds() argument 372 struct inode *ino = lseg->pls_layout->plh_inode; in nfs4_ff_layout_prepare_ds() 377 if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror)) in nfs4_ff_layout_prepare_ds() 406 ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout), in nfs4_ff_layout_prepare_ds() 407 mirror, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds() 408 lseg->pls_range.length, NFS4ERR_NXIO, in nfs4_ff_layout_prepare_ds() 410 ff_layout_send_layouterror(lseg); in nfs4_ff_layout_prepare_ds() 411 if (fail_return || !ff_layout_has_available_ds(lseg)) in nfs4_ff_layout_prepare_ds() 412 pnfs_error_mark_layout_for_return(ino, lseg); in nfs4_ff_layout_prepare_ds() [all …]
|
/Linux-v5.15/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() 187 pnfs_error_mark_layout_for_return(inode, lseg); in filelayout_async_handle_error() 188 pnfs_set_lo_fail(lseg); in filelayout_async_handle_error() 210 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb() 234 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit() 241 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-v5.15/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-v5.15/fs/nfs/blocklayout/ |
D | blocklayout.c | 189 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_mark_devices_unavailable() 219 pnfs_set_lo_fail(header->lseg); in bl_end_io_read() 250 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_read_pagelist() 349 pnfs_set_lo_fail(header->lseg); in bl_end_io_write() 368 struct pnfs_block_layout *bl = BLK_LSEG2EXT(hdr->lseg); in bl_write_cleanup() 395 struct pnfs_block_layout *bl = BLK_LSEG2EXT(header->lseg); in bl_write_pagelist() 507 static void bl_free_lseg(struct pnfs_layout_segment *lseg) in bl_free_lseg() argument 510 kfree(lseg); in bl_free_lseg() 673 struct pnfs_layout_segment *lseg; in bl_alloc_lseg() local 684 lseg = kzalloc(sizeof(*lseg), gfp_mask); in bl_alloc_lseg() [all …]
|
D | blocklayout.h | 153 BLK_LSEG2EXT(struct pnfs_layout_segment *lseg) in BLK_LSEG2EXT() argument 155 return BLK_LO2EXT(lseg->pls_layout); in BLK_LSEG2EXT()
|
/Linux-v5.15/arch/x86/kernel/ |
D | module.c | 278 void *lseg = (void *)locks->sh_addr; in module_finalize() local 281 lseg, lseg + locks->sh_size, in module_finalize()
|
/Linux-v5.15/include/linux/ |
D | nfs_xdr.h | 425 struct pnfs_layout_segment *lseg; member 1292 struct pnfs_layout_segment *lseg; member 1299 struct pnfs_layout_segment *lseg; member 1610 struct pnfs_layout_segment *lseg; member 1674 struct pnfs_layout_segment *lseg; member
|