/kernel/linux/linux-5.10/fs/nfs/ |
H A D | read.c | 61 void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, in nfs_pageio_init_read() argument 72 nfs_pageio_init(pgio, inode, pg_ops, compl_ops, &nfs_rw_read_ops, in nfs_pageio_init_read() 77 void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio) in nfs_pageio_reset_read_mds() argument 81 if (pgio->pg_ops && pgio->pg_ops->pg_cleanup) in nfs_pageio_reset_read_mds() 82 pgio->pg_ops->pg_cleanup(pgio); in nfs_pageio_reset_read_mds() 84 pgio->pg_ops = &nfs_pgio_rw_ops; in nfs_pageio_reset_read_mds() 87 WARN_ON_ONCE(pgio->pg_mirror_count != 1); in nfs_pageio_reset_read_mds() 89 mirror = &pgio in nfs_pageio_reset_read_mds() 122 struct nfs_pageio_descriptor pgio; nfs_readpage_async() local 371 struct nfs_pageio_descriptor *pgio; global() member 410 struct nfs_pageio_descriptor pgio; nfs_readpages() local [all...] |
H A D | pagelist.c | 778 dprintk("NFS: initiated pgio call " in nfs_initiate_pgio() 1000 static void nfs_pageio_setup_mirroring(struct nfs_pageio_descriptor *pgio, in nfs_pageio_setup_mirroring() argument 1005 if (pgio->pg_ops->pg_get_mirror_count) in nfs_pageio_setup_mirroring() 1006 mirror_count = pgio->pg_ops->pg_get_mirror_count(pgio, req); in nfs_pageio_setup_mirroring() 1007 if (mirror_count == pgio->pg_mirror_count || pgio->pg_error < 0) in nfs_pageio_setup_mirroring() 1011 pgio->pg_error = -EINVAL; in nfs_pageio_setup_mirroring() 1015 pgio->pg_mirrors = nfs_pageio_alloc_mirrors(pgio, mirror_coun in nfs_pageio_setup_mirroring() 1024 nfs_pageio_cleanup_mirroring(struct nfs_pageio_descriptor *pgio) nfs_pageio_cleanup_mirroring() argument 1051 nfs_coalesce_size(struct nfs_page *prev, struct nfs_page *req, struct nfs_pageio_descriptor *pgio) nfs_coalesce_size() argument 1439 nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio) nfs_pageio_stop_mirroring() argument [all...] |
H A D | pnfs.c | 2696 pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio) in pnfs_generic_pg_check_layout() argument 2698 if (pgio->pg_lseg == NULL || in pnfs_generic_pg_check_layout() 2699 test_bit(NFS_LSEG_VALID, &pgio->pg_lseg->pls_flags)) in pnfs_generic_pg_check_layout() 2701 pnfs_put_lseg(pgio->pg_lseg); in pnfs_generic_pg_check_layout() 2702 pgio->pg_lseg = NULL; in pnfs_generic_pg_check_layout() 2707 * Check for any intersection between the request and the pgio->pg_lseg, 2708 * and if none, put this pgio->pg_lseg away. 2711 pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) in pnfs_generic_pg_check_range() argument 2713 if (pgio->pg_lseg && !pnfs_lseg_request_intersecting(pgio in pnfs_generic_pg_check_range() 2721 pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) pnfs_generic_pg_init_read() argument 2754 pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req, u64 wb_size) pnfs_generic_pg_init_write() argument 2794 pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) pnfs_generic_pg_test() argument 2837 struct nfs_pageio_descriptor pgio; pnfs_write_done_resend_to_mds() local 2966 struct nfs_pageio_descriptor pgio; pnfs_read_done_resend_to_mds() local 3041 struct nfs_pageio_descriptor pgio; pnfs_read_resend_pnfs() local [all...] |
H A D | write.c | 607 static int nfs_page_async_flush(struct nfs_pageio_descriptor *pgio, in nfs_page_async_flush() argument 624 ret = pgio->pg_error; in nfs_page_async_flush() 629 if (!nfs_pageio_add_request(pgio, req)) { in nfs_page_async_flush() 630 ret = pgio->pg_error; in nfs_page_async_flush() 640 pgio->pg_error = 0; in nfs_page_async_flush() 652 struct nfs_pageio_descriptor *pgio) in nfs_do_writepage() 656 nfs_pageio_cond_complete(pgio, page_index(page)); in nfs_do_writepage() 657 ret = nfs_page_async_flush(pgio, page); in nfs_do_writepage() 671 struct nfs_pageio_descriptor pgio; in nfs_writepage_locked() local 676 nfs_pageio_init_write(&pgio, inod in nfs_writepage_locked() 651 nfs_do_writepage(struct page *page, struct writeback_control *wbc, struct nfs_pageio_descriptor *pgio) nfs_do_writepage() argument 712 struct nfs_pageio_descriptor pgio; nfs_writepages() local 1429 nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio, struct inode *inode, int ioflags, bool force_mds, const struct nfs_pgio_completion_ops *compl_ops) nfs_pageio_init_write() argument 1445 nfs_pageio_reset_write_mds(struct nfs_pageio_descriptor *pgio) nfs_pageio_reset_write_mds() argument [all...] |
H A D | internal.h | 474 extern void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, 478 extern void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio); 490 extern void nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio, 493 extern void nfs_pageio_reset_write_mds(struct nfs_pageio_descriptor *pgio); 536 void nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio);
|
H A D | pnfs.h | 257 void pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio); 258 void pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req); 261 void pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, 265 size_t pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio,
|
/kernel/linux/linux-6.6/fs/nfs/ |
H A D | read.c | 63 void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, in nfs_pageio_init_read() argument 74 nfs_pageio_init(pgio, inode, pg_ops, compl_ops, &nfs_rw_read_ops, in nfs_pageio_init_read() 79 void nfs_pageio_complete_read(struct nfs_pageio_descriptor *pgio) in nfs_pageio_complete_read() argument 84 nfs_pageio_complete(pgio); in nfs_pageio_complete_read() 87 WARN_ON_ONCE(pgio->pg_mirror_count != 1); in nfs_pageio_complete_read() 89 pgm = &pgio->pg_mirrors[0]; in nfs_pageio_complete_read() 90 NFS_I(pgio->pg_inode)->read_io += pgm->pg_bytes_written; in nfs_pageio_complete_read() 92 nfs_add_stats(pgio->pg_inode, NFSIOS_READPAGES, npages); in nfs_pageio_complete_read() 96 void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio) in nfs_pageio_reset_read_mds() argument 100 if (pgio in nfs_pageio_reset_read_mds() 287 nfs_read_add_folio(struct nfs_pageio_descriptor *pgio, struct nfs_open_context *ctx, struct folio *folio) nfs_read_add_folio() argument 335 struct nfs_pageio_descriptor pgio; nfs_read_folio() local 393 struct nfs_pageio_descriptor pgio; nfs_readahead() local [all...] |
H A D | pagelist.c | 872 dprintk("NFS: initiated pgio call " in nfs_initiate_pgio() 1108 static void nfs_pageio_setup_mirroring(struct nfs_pageio_descriptor *pgio, in nfs_pageio_setup_mirroring() argument 1113 if (pgio->pg_ops->pg_get_mirror_count) in nfs_pageio_setup_mirroring() 1114 mirror_count = pgio->pg_ops->pg_get_mirror_count(pgio, req); in nfs_pageio_setup_mirroring() 1115 if (mirror_count == pgio->pg_mirror_count || pgio->pg_error < 0) in nfs_pageio_setup_mirroring() 1119 pgio->pg_error = -EINVAL; in nfs_pageio_setup_mirroring() 1123 pgio->pg_mirrors = nfs_pageio_alloc_mirrors(pgio, mirror_coun in nfs_pageio_setup_mirroring() 1132 nfs_pageio_cleanup_mirroring(struct nfs_pageio_descriptor *pgio) nfs_pageio_cleanup_mirroring() argument 1177 nfs_coalesce_size(struct nfs_page *prev, struct nfs_page *req, struct nfs_pageio_descriptor *pgio) nfs_coalesce_size() argument 1557 nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio) nfs_pageio_stop_mirroring() argument [all...] |
H A D | pnfs.c | 2697 pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio) in pnfs_generic_pg_check_layout() argument 2699 if (pgio->pg_lseg == NULL || in pnfs_generic_pg_check_layout() 2700 test_bit(NFS_LSEG_VALID, &pgio->pg_lseg->pls_flags)) in pnfs_generic_pg_check_layout() 2702 pnfs_put_lseg(pgio->pg_lseg); in pnfs_generic_pg_check_layout() 2703 pgio->pg_lseg = NULL; in pnfs_generic_pg_check_layout() 2708 * Check for any intersection between the request and the pgio->pg_lseg, 2709 * and if none, put this pgio->pg_lseg away. 2712 pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) in pnfs_generic_pg_check_range() argument 2714 if (pgio->pg_lseg && !pnfs_lseg_request_intersecting(pgio in pnfs_generic_pg_check_range() 2722 pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) pnfs_generic_pg_init_read() argument 2754 pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req, u64 wb_size) pnfs_generic_pg_init_write() argument 2791 pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) pnfs_generic_pg_test() argument 2834 struct nfs_pageio_descriptor pgio; pnfs_write_done_resend_to_mds() local 2963 struct nfs_pageio_descriptor pgio; pnfs_read_done_resend_to_mds() local 3038 struct nfs_pageio_descriptor pgio; pnfs_read_resend_pnfs() local [all...] |
H A D | write.c | 610 struct nfs_pageio_descriptor *pgio) in nfs_page_async_flush() 626 ret = pgio->pg_error; in nfs_page_async_flush() 631 if (!nfs_pageio_add_request(pgio, req)) { in nfs_page_async_flush() 632 ret = pgio->pg_error; in nfs_page_async_flush() 642 pgio->pg_error = 0; in nfs_page_async_flush() 654 struct nfs_pageio_descriptor *pgio) in nfs_do_writepage() 656 nfs_pageio_cond_complete(pgio, folio_index(folio)); in nfs_do_writepage() 657 return nfs_page_async_flush(folio, wbc, pgio); in nfs_do_writepage() 666 struct nfs_pageio_descriptor pgio; in nfs_writepage_locked() local 677 nfs_pageio_init_write(&pgio, inod in nfs_writepage_locked() 608 nfs_page_async_flush(struct folio *folio, struct writeback_control *wbc, struct nfs_pageio_descriptor *pgio) nfs_page_async_flush() argument 653 nfs_do_writepage(struct folio *folio, struct writeback_control *wbc, struct nfs_pageio_descriptor *pgio) nfs_do_writepage() argument 715 struct nfs_pageio_descriptor pgio; nfs_writepages() local 1466 nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio, struct inode *inode, int ioflags, bool force_mds, const struct nfs_pgio_completion_ops *compl_ops) nfs_pageio_init_write() argument 1482 nfs_pageio_reset_write_mds(struct nfs_pageio_descriptor *pgio) nfs_pageio_reset_write_mds() argument [all...] |
H A D | fscache.c | 306 struct nfs_pageio_descriptor pgio; in nfs_netfs_issue_read() local 316 nfs_pageio_init_read(&pgio, inode, false, in nfs_netfs_issue_read() 323 pgio.pg_netfs = netfs; /* used in completion */ in nfs_netfs_issue_read() 327 err = nfs_read_add_folio(&pgio, ctx, page_folio(page)); in nfs_netfs_issue_read() 334 nfs_pageio_complete_read(&pgio); in nfs_netfs_issue_read()
|
H A D | internal.h | 495 extern void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, 499 extern int nfs_read_add_folio(struct nfs_pageio_descriptor *pgio, 502 extern void nfs_pageio_complete_read(struct nfs_pageio_descriptor *pgio); 504 extern void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio); 516 extern void nfs_pageio_init_write(struct nfs_pageio_descriptor *pgio, 519 extern void nfs_pageio_reset_write_mds(struct nfs_pageio_descriptor *pgio); 561 void nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio);
|
H A D | pnfs.h | 257 void pnfs_generic_pg_check_layout(struct nfs_pageio_descriptor *pgio); 258 void pnfs_generic_pg_check_range(struct nfs_pageio_descriptor *pgio, struct nfs_page *req); 261 void pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, 265 size_t pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio,
|
/kernel/linux/linux-5.10/fs/nfs/blocklayout/ |
H A D | blocklayout.c | 826 is_aligned_req(struct nfs_pageio_descriptor *pgio, in is_aligned_req() argument 833 if (pgio->pg_dreq == NULL) in is_aligned_req() 843 (req_offset(req) + req->wb_bytes == i_size_read(pgio->pg_inode))) { in is_aligned_req() 858 bl_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) in bl_pg_init_read() argument 860 if (!is_aligned_req(pgio, req, SECTOR_SIZE, false)) { in bl_pg_init_read() 861 nfs_pageio_reset_read_mds(pgio); in bl_pg_init_read() 865 pnfs_generic_pg_init_read(pgio, req); in bl_pg_init_read() 867 if (pgio->pg_lseg && in bl_pg_init_read() 868 test_bit(NFS_LSEG_UNAVAILABLE, &pgio->pg_lseg->pls_flags)) { in bl_pg_init_read() 869 pnfs_error_mark_layout_for_return(pgio in bl_pg_init_read() 880 bl_pg_test_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) bl_pg_test_read() argument 912 bl_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) bl_pg_init_write() argument 943 bl_pg_test_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) bl_pg_test_write() argument [all...] |
/kernel/linux/linux-6.6/fs/nfs/blocklayout/ |
H A D | blocklayout.c | 802 is_aligned_req(struct nfs_pageio_descriptor *pgio, in is_aligned_req() argument 809 if (pgio->pg_dreq == NULL) in is_aligned_req() 819 (req_offset(req) + req->wb_bytes == i_size_read(pgio->pg_inode))) { in is_aligned_req() 834 bl_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) in bl_pg_init_read() argument 836 if (!is_aligned_req(pgio, req, SECTOR_SIZE, false)) { in bl_pg_init_read() 837 nfs_pageio_reset_read_mds(pgio); in bl_pg_init_read() 841 pnfs_generic_pg_init_read(pgio, req); in bl_pg_init_read() 843 if (pgio->pg_lseg && in bl_pg_init_read() 844 test_bit(NFS_LSEG_UNAVAILABLE, &pgio->pg_lseg->pls_flags)) { in bl_pg_init_read() 845 pnfs_error_mark_layout_for_return(pgio in bl_pg_init_read() 856 bl_pg_test_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) bl_pg_test_read() argument 888 bl_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) bl_pg_init_write() argument 918 bl_pg_test_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) bl_pg_test_write() argument [all...] |
/kernel/linux/linux-5.10/fs/nfs/flexfilelayout/ |
H A D | flexfilelayout.c | 794 ff_layout_get_ds_for_read(struct nfs_pageio_descriptor *pgio, in ff_layout_get_ds_for_read() argument 797 struct pnfs_layout_segment *lseg = pgio->pg_lseg; in ff_layout_get_ds_for_read() 800 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx, in ff_layout_get_ds_for_read() 802 if (ds || !pgio->pg_mirror_idx) in ff_layout_get_ds_for_read() 808 ff_layout_pg_get_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_read() argument 812 pnfs_put_lseg(pgio->pg_lseg); in ff_layout_pg_get_read() 813 pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode, in ff_layout_pg_get_read() 820 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_read() 821 pgio in ff_layout_pg_get_read() 827 ff_layout_pg_check_layout(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_check_layout() argument 835 ff_layout_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_init_read() argument 890 ff_layout_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_init_write() argument 956 ff_layout_pg_get_mirror_count_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_get_mirror_count_write() argument [all...] |
/kernel/linux/linux-6.6/fs/nfs/flexfilelayout/ |
H A D | flexfilelayout.c | 796 ff_layout_get_ds_for_read(struct nfs_pageio_descriptor *pgio, in ff_layout_get_ds_for_read() argument 799 struct pnfs_layout_segment *lseg = pgio->pg_lseg; in ff_layout_get_ds_for_read() 802 ds = ff_layout_choose_best_ds_for_read(lseg, pgio->pg_mirror_idx, in ff_layout_get_ds_for_read() 804 if (ds || !pgio->pg_mirror_idx) in ff_layout_get_ds_for_read() 810 ff_layout_pg_get_read(struct nfs_pageio_descriptor *pgio, in ff_layout_pg_get_read() argument 814 pnfs_put_lseg(pgio->pg_lseg); in ff_layout_pg_get_read() 815 pgio->pg_lseg = in ff_layout_pg_get_read() 816 pnfs_update_layout(pgio->pg_inode, nfs_req_openctx(req), in ff_layout_pg_get_read() 819 if (IS_ERR(pgio->pg_lseg)) { in ff_layout_pg_get_read() 820 pgio in ff_layout_pg_get_read() 826 ff_layout_pg_check_layout(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_check_layout() argument 834 ff_layout_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_init_read() argument 889 ff_layout_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_init_write() argument 952 ff_layout_pg_get_mirror_count_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) ff_layout_pg_get_mirror_count_write() argument [all...] |
/kernel/linux/linux-5.10/fs/nfs/filelayout/ |
H A D | filelayout.c | 795 * Return 0 if @req cannot be coalesced into @pgio, otherwise return the number 799 filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, in filelayout_pg_test() argument 805 u64 segment_offset = pgio->pg_lseg->pls_range.offset; in filelayout_pg_test() 806 u32 stripe_unit = FILELAYOUT_LSEG(pgio->pg_lseg)->stripe_unit; in filelayout_pg_test() 809 size = pnfs_generic_pg_test(pgio, prev, req); in filelayout_pg_test() 812 else if (!filelayout_lseg_is_striped(FILELAYOUT_LSEG(pgio->pg_lseg))) in filelayout_pg_test() 868 filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio, in filelayout_pg_init_read() argument 871 pnfs_generic_pg_check_layout(pgio); in filelayout_pg_init_read() 872 if (!pgio->pg_lseg) { in filelayout_pg_init_read() 873 pgio in filelayout_pg_init_read() 892 filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) filelayout_pg_init_write() argument [all...] |
/kernel/linux/linux-6.6/fs/nfs/filelayout/ |
H A D | filelayout.c | 795 * Return 0 if @req cannot be coalesced into @pgio, otherwise return the number 799 filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, in filelayout_pg_test() argument 805 u64 segment_offset = pgio->pg_lseg->pls_range.offset; in filelayout_pg_test() 806 u32 stripe_unit = FILELAYOUT_LSEG(pgio->pg_lseg)->stripe_unit; in filelayout_pg_test() 809 size = pnfs_generic_pg_test(pgio, prev, req); in filelayout_pg_test() 812 else if (!filelayout_lseg_is_striped(FILELAYOUT_LSEG(pgio->pg_lseg))) in filelayout_pg_test() 875 filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio, in filelayout_pg_init_read() argument 878 pnfs_generic_pg_check_layout(pgio); in filelayout_pg_init_read() 879 if (!pgio->pg_lseg) { in filelayout_pg_init_read() 880 pgio in filelayout_pg_init_read() 899 filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req) filelayout_pg_init_write() argument [all...] |