Lines Matching refs:hdr
1892 int pnfs_write_done_resend_to_mds(struct nfs_pgio_header *hdr) in pnfs_write_done_resend_to_mds() argument
1897 nfs_pageio_init_write(&pgio, hdr->inode, FLUSH_STABLE, true, in pnfs_write_done_resend_to_mds()
1898 hdr->completion_ops); in pnfs_write_done_resend_to_mds()
1899 set_bit(NFS_CONTEXT_RESEND_WRITES, &hdr->args.context->flags); in pnfs_write_done_resend_to_mds()
1900 return nfs_pageio_resend(&pgio, hdr); in pnfs_write_done_resend_to_mds()
1904 static void pnfs_ld_handle_write_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_write_error() argument
1907 dprintk("pnfs write error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_write_error()
1908 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_write_error()
1910 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_write_error()
1912 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_write_error()
1913 hdr->task.tk_status = pnfs_write_done_resend_to_mds(hdr); in pnfs_ld_handle_write_error()
1919 void pnfs_ld_write_done(struct nfs_pgio_header *hdr) in pnfs_ld_write_done() argument
1921 if (likely(!hdr->pnfs_error)) { in pnfs_ld_write_done()
1922 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, in pnfs_ld_write_done()
1923 hdr->mds_offset + hdr->res.count); in pnfs_ld_write_done()
1924 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_write_done()
1926 trace_nfs4_pnfs_write(hdr, hdr->pnfs_error); in pnfs_ld_write_done()
1927 if (unlikely(hdr->pnfs_error)) in pnfs_ld_write_done()
1928 pnfs_ld_handle_write_error(hdr); in pnfs_ld_write_done()
1929 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_write_done()
1935 struct nfs_pgio_header *hdr) in pnfs_write_through_mds() argument
1939 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_write_through_mds()
1940 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_write_through_mds()
1944 nfs_pgio_data_destroy(hdr); in pnfs_write_through_mds()
1945 hdr->release(hdr); in pnfs_write_through_mds()
1949 pnfs_try_to_write_data(struct nfs_pgio_header *hdr, in pnfs_try_to_write_data() argument
1954 struct inode *inode = hdr->inode; in pnfs_try_to_write_data()
1958 hdr->mds_ops = call_ops; in pnfs_try_to_write_data()
1961 inode->i_ino, hdr->args.count, hdr->args.offset, how); in pnfs_try_to_write_data()
1962 trypnfs = nfss->pnfs_curr_ld->write_pagelist(hdr, how); in pnfs_try_to_write_data()
1971 struct nfs_pgio_header *hdr, int how) in pnfs_do_write() argument
1977 trypnfs = pnfs_try_to_write_data(hdr, call_ops, lseg, how); in pnfs_do_write()
1979 pnfs_write_through_mds(desc, hdr); in pnfs_do_write()
1982 static void pnfs_writehdr_free(struct nfs_pgio_header *hdr) in pnfs_writehdr_free() argument
1984 pnfs_put_lseg(hdr->lseg); in pnfs_writehdr_free()
1985 nfs_pgio_header_free(hdr); in pnfs_writehdr_free()
1993 struct nfs_pgio_header *hdr; in pnfs_generic_pg_writepages() local
1996 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_writepages()
1997 if (!hdr) { in pnfs_generic_pg_writepages()
2001 nfs_pgheader_init(desc, hdr, pnfs_writehdr_free); in pnfs_generic_pg_writepages()
2003 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_writepages()
2004 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_writepages()
2006 pnfs_do_write(desc, hdr, desc->pg_ioflags); in pnfs_generic_pg_writepages()
2012 int pnfs_read_done_resend_to_mds(struct nfs_pgio_header *hdr) in pnfs_read_done_resend_to_mds() argument
2017 nfs_pageio_init_read(&pgio, hdr->inode, true, hdr->completion_ops); in pnfs_read_done_resend_to_mds()
2018 return nfs_pageio_resend(&pgio, hdr); in pnfs_read_done_resend_to_mds()
2022 static void pnfs_ld_handle_read_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_read_error() argument
2024 dprintk("pnfs read error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_read_error()
2025 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_read_error()
2027 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_read_error()
2029 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_read_error()
2030 hdr->task.tk_status = pnfs_read_done_resend_to_mds(hdr); in pnfs_ld_handle_read_error()
2036 void pnfs_ld_read_done(struct nfs_pgio_header *hdr) in pnfs_ld_read_done() argument
2038 if (likely(!hdr->pnfs_error)) { in pnfs_ld_read_done()
2039 __nfs4_read_done_cb(hdr); in pnfs_ld_read_done()
2040 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_read_done()
2042 trace_nfs4_pnfs_read(hdr, hdr->pnfs_error); in pnfs_ld_read_done()
2043 if (unlikely(hdr->pnfs_error)) in pnfs_ld_read_done()
2044 pnfs_ld_handle_read_error(hdr); in pnfs_ld_read_done()
2045 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_read_done()
2051 struct nfs_pgio_header *hdr) in pnfs_read_through_mds() argument
2055 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_read_through_mds()
2056 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_read_through_mds()
2060 nfs_pgio_data_destroy(hdr); in pnfs_read_through_mds()
2061 hdr->release(hdr); in pnfs_read_through_mds()
2068 pnfs_try_to_read_data(struct nfs_pgio_header *hdr, in pnfs_try_to_read_data() argument
2072 struct inode *inode = hdr->inode; in pnfs_try_to_read_data()
2076 hdr->mds_ops = call_ops; in pnfs_try_to_read_data()
2079 __func__, inode->i_ino, hdr->args.count, hdr->args.offset); in pnfs_try_to_read_data()
2081 trypnfs = nfss->pnfs_curr_ld->read_pagelist(hdr); in pnfs_try_to_read_data()
2089 int pnfs_read_resend_pnfs(struct nfs_pgio_header *hdr) in pnfs_read_resend_pnfs() argument
2093 nfs_pageio_init_read(&pgio, hdr->inode, false, hdr->completion_ops); in pnfs_read_resend_pnfs()
2094 return nfs_pageio_resend(&pgio, hdr); in pnfs_read_resend_pnfs()
2099 pnfs_do_read(struct nfs_pageio_descriptor *desc, struct nfs_pgio_header *hdr) in pnfs_do_read() argument
2106 trypnfs = pnfs_try_to_read_data(hdr, call_ops, lseg); in pnfs_do_read()
2108 err = pnfs_read_resend_pnfs(hdr); in pnfs_do_read()
2110 pnfs_read_through_mds(desc, hdr); in pnfs_do_read()
2113 static void pnfs_readhdr_free(struct nfs_pgio_header *hdr) in pnfs_readhdr_free() argument
2115 pnfs_put_lseg(hdr->lseg); in pnfs_readhdr_free()
2116 nfs_pgio_header_free(hdr); in pnfs_readhdr_free()
2124 struct nfs_pgio_header *hdr; in pnfs_generic_pg_readpages() local
2127 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_readpages()
2128 if (!hdr) { in pnfs_generic_pg_readpages()
2132 nfs_pgheader_init(desc, hdr, pnfs_readhdr_free); in pnfs_generic_pg_readpages()
2133 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_readpages()
2134 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_readpages()
2136 pnfs_do_read(desc, hdr); in pnfs_generic_pg_readpages()
2338 struct pnfs_layout_hdr *hdr; in pnfs_report_layoutstat() local
2355 hdr = NFS_I(inode)->layout; in pnfs_report_layoutstat()
2356 pnfs_get_layout_hdr(hdr); in pnfs_report_layoutstat()
2367 nfs4_stateid_copy(&data->args.stateid, &hdr->plh_stateid); in pnfs_report_layoutstat()
2381 pnfs_put_layout_hdr(hdr); in pnfs_report_layoutstat()