• Home
  • Raw
  • Download

Lines Matching refs:hdr

2606 int pnfs_write_done_resend_to_mds(struct nfs_pgio_header *hdr)  in pnfs_write_done_resend_to_mds()  argument
2611 nfs_pageio_init_write(&pgio, hdr->inode, FLUSH_STABLE, true, in pnfs_write_done_resend_to_mds()
2612 hdr->completion_ops); in pnfs_write_done_resend_to_mds()
2613 set_bit(NFS_CONTEXT_RESEND_WRITES, &hdr->args.context->flags); in pnfs_write_done_resend_to_mds()
2614 return nfs_pageio_resend(&pgio, hdr); in pnfs_write_done_resend_to_mds()
2618 static void pnfs_ld_handle_write_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_write_error() argument
2621 dprintk("pnfs write error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_write_error()
2622 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_write_error()
2624 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_write_error()
2626 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_write_error()
2627 hdr->task.tk_status = pnfs_write_done_resend_to_mds(hdr); in pnfs_ld_handle_write_error()
2633 void pnfs_ld_write_done(struct nfs_pgio_header *hdr) in pnfs_ld_write_done() argument
2635 if (likely(!hdr->pnfs_error)) { in pnfs_ld_write_done()
2636 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, in pnfs_ld_write_done()
2637 hdr->mds_offset + hdr->res.count); in pnfs_ld_write_done()
2638 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_write_done()
2640 trace_nfs4_pnfs_write(hdr, hdr->pnfs_error); in pnfs_ld_write_done()
2641 if (unlikely(hdr->pnfs_error)) in pnfs_ld_write_done()
2642 pnfs_ld_handle_write_error(hdr); in pnfs_ld_write_done()
2643 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_write_done()
2649 struct nfs_pgio_header *hdr) in pnfs_write_through_mds() argument
2653 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_write_through_mds()
2654 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_write_through_mds()
2658 hdr->completion_ops->completion(hdr); in pnfs_write_through_mds()
2662 pnfs_try_to_write_data(struct nfs_pgio_header *hdr, in pnfs_try_to_write_data() argument
2667 struct inode *inode = hdr->inode; in pnfs_try_to_write_data()
2671 hdr->mds_ops = call_ops; in pnfs_try_to_write_data()
2674 inode->i_ino, hdr->args.count, hdr->args.offset, how); in pnfs_try_to_write_data()
2675 trypnfs = nfss->pnfs_curr_ld->write_pagelist(hdr, how); in pnfs_try_to_write_data()
2684 struct nfs_pgio_header *hdr, int how) in pnfs_do_write() argument
2690 trypnfs = pnfs_try_to_write_data(hdr, call_ops, lseg, how); in pnfs_do_write()
2693 pnfs_write_through_mds(desc, hdr); in pnfs_do_write()
2698 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_do_write()
2700 list_splice_init(&hdr->pages, &mirror->pg_list); in pnfs_do_write()
2703 hdr->mds_ops->rpc_release(hdr); in pnfs_do_write()
2707 static void pnfs_writehdr_free(struct nfs_pgio_header *hdr) in pnfs_writehdr_free() argument
2709 pnfs_put_lseg(hdr->lseg); in pnfs_writehdr_free()
2710 nfs_pgio_header_free(hdr); in pnfs_writehdr_free()
2716 struct nfs_pgio_header *hdr; in pnfs_generic_pg_writepages() local
2719 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_writepages()
2720 if (!hdr) { in pnfs_generic_pg_writepages()
2724 nfs_pgheader_init(desc, hdr, pnfs_writehdr_free); in pnfs_generic_pg_writepages()
2726 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_writepages()
2727 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_writepages()
2729 pnfs_do_write(desc, hdr, desc->pg_ioflags); in pnfs_generic_pg_writepages()
2735 int pnfs_read_done_resend_to_mds(struct nfs_pgio_header *hdr) in pnfs_read_done_resend_to_mds() argument
2740 nfs_pageio_init_read(&pgio, hdr->inode, true, hdr->completion_ops); in pnfs_read_done_resend_to_mds()
2741 return nfs_pageio_resend(&pgio, hdr); in pnfs_read_done_resend_to_mds()
2745 static void pnfs_ld_handle_read_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_read_error() argument
2747 dprintk("pnfs read error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_read_error()
2748 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_read_error()
2750 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_read_error()
2752 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_read_error()
2753 hdr->task.tk_status = pnfs_read_done_resend_to_mds(hdr); in pnfs_ld_handle_read_error()
2759 void pnfs_ld_read_done(struct nfs_pgio_header *hdr) in pnfs_ld_read_done() argument
2761 if (likely(!hdr->pnfs_error)) in pnfs_ld_read_done()
2762 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_read_done()
2763 trace_nfs4_pnfs_read(hdr, hdr->pnfs_error); in pnfs_ld_read_done()
2764 if (unlikely(hdr->pnfs_error)) in pnfs_ld_read_done()
2765 pnfs_ld_handle_read_error(hdr); in pnfs_ld_read_done()
2766 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_read_done()
2772 struct nfs_pgio_header *hdr) in pnfs_read_through_mds() argument
2776 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_read_through_mds()
2777 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_read_through_mds()
2781 hdr->completion_ops->completion(hdr); in pnfs_read_through_mds()
2788 pnfs_try_to_read_data(struct nfs_pgio_header *hdr, in pnfs_try_to_read_data() argument
2792 struct inode *inode = hdr->inode; in pnfs_try_to_read_data()
2796 hdr->mds_ops = call_ops; in pnfs_try_to_read_data()
2799 __func__, inode->i_ino, hdr->args.count, hdr->args.offset); in pnfs_try_to_read_data()
2801 trypnfs = nfss->pnfs_curr_ld->read_pagelist(hdr); in pnfs_try_to_read_data()
2809 void pnfs_read_resend_pnfs(struct nfs_pgio_header *hdr) in pnfs_read_resend_pnfs() argument
2813 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_read_resend_pnfs()
2815 pnfs_put_lseg(hdr->lseg); in pnfs_read_resend_pnfs()
2816 hdr->lseg = NULL; in pnfs_read_resend_pnfs()
2818 nfs_pageio_init_read(&pgio, hdr->inode, false, in pnfs_read_resend_pnfs()
2819 hdr->completion_ops); in pnfs_read_resend_pnfs()
2820 hdr->task.tk_status = nfs_pageio_resend(&pgio, hdr); in pnfs_read_resend_pnfs()
2826 pnfs_do_read(struct nfs_pageio_descriptor *desc, struct nfs_pgio_header *hdr) in pnfs_do_read() argument
2832 trypnfs = pnfs_try_to_read_data(hdr, call_ops, lseg); in pnfs_do_read()
2835 pnfs_read_through_mds(desc, hdr); in pnfs_do_read()
2840 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_do_read()
2842 list_splice_init(&hdr->pages, &mirror->pg_list); in pnfs_do_read()
2845 hdr->mds_ops->rpc_release(hdr); in pnfs_do_read()
2849 static void pnfs_readhdr_free(struct nfs_pgio_header *hdr) in pnfs_readhdr_free() argument
2851 pnfs_put_lseg(hdr->lseg); in pnfs_readhdr_free()
2852 nfs_pgio_header_free(hdr); in pnfs_readhdr_free()
2858 struct nfs_pgio_header *hdr; in pnfs_generic_pg_readpages() local
2861 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_readpages()
2862 if (!hdr) { in pnfs_generic_pg_readpages()
2866 nfs_pgheader_init(desc, hdr, pnfs_readhdr_free); in pnfs_generic_pg_readpages()
2867 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_readpages()
2868 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_readpages()
2870 pnfs_do_read(desc, hdr); in pnfs_generic_pg_readpages()
3075 struct pnfs_layout_hdr *hdr; in pnfs_report_layoutstat() local
3092 hdr = NFS_I(inode)->layout; in pnfs_report_layoutstat()
3093 pnfs_get_layout_hdr(hdr); in pnfs_report_layoutstat()
3117 pnfs_put_layout_hdr(hdr); in pnfs_report_layoutstat()