Lines Matching refs:hdr

1817 int pnfs_write_done_resend_to_mds(struct nfs_pgio_header *hdr)  in pnfs_write_done_resend_to_mds()  argument
1822 nfs_pageio_init_write(&pgio, hdr->inode, FLUSH_STABLE, true, in pnfs_write_done_resend_to_mds()
1823 hdr->completion_ops); in pnfs_write_done_resend_to_mds()
1824 set_bit(NFS_CONTEXT_RESEND_WRITES, &hdr->args.context->flags); in pnfs_write_done_resend_to_mds()
1825 return nfs_pageio_resend(&pgio, hdr); in pnfs_write_done_resend_to_mds()
1829 static void pnfs_ld_handle_write_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_write_error() argument
1832 dprintk("pnfs write error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_write_error()
1833 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_write_error()
1835 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_write_error()
1837 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_write_error()
1838 hdr->task.tk_status = pnfs_write_done_resend_to_mds(hdr); in pnfs_ld_handle_write_error()
1844 void pnfs_ld_write_done(struct nfs_pgio_header *hdr) in pnfs_ld_write_done() argument
1846 trace_nfs4_pnfs_write(hdr, hdr->pnfs_error); in pnfs_ld_write_done()
1847 if (!hdr->pnfs_error) { in pnfs_ld_write_done()
1848 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, in pnfs_ld_write_done()
1849 hdr->mds_offset + hdr->res.count); in pnfs_ld_write_done()
1850 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_write_done()
1852 pnfs_ld_handle_write_error(hdr); in pnfs_ld_write_done()
1853 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_write_done()
1859 struct nfs_pgio_header *hdr) in pnfs_write_through_mds() argument
1863 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_write_through_mds()
1864 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_write_through_mds()
1868 nfs_pgio_data_destroy(hdr); in pnfs_write_through_mds()
1869 hdr->release(hdr); in pnfs_write_through_mds()
1873 pnfs_try_to_write_data(struct nfs_pgio_header *hdr, in pnfs_try_to_write_data() argument
1878 struct inode *inode = hdr->inode; in pnfs_try_to_write_data()
1882 hdr->mds_ops = call_ops; in pnfs_try_to_write_data()
1885 inode->i_ino, hdr->args.count, hdr->args.offset, how); in pnfs_try_to_write_data()
1886 trypnfs = nfss->pnfs_curr_ld->write_pagelist(hdr, how); in pnfs_try_to_write_data()
1895 struct nfs_pgio_header *hdr, int how) in pnfs_do_write() argument
1901 trypnfs = pnfs_try_to_write_data(hdr, call_ops, lseg, how); in pnfs_do_write()
1903 pnfs_write_through_mds(desc, hdr); in pnfs_do_write()
1906 static void pnfs_writehdr_free(struct nfs_pgio_header *hdr) in pnfs_writehdr_free() argument
1908 pnfs_put_lseg(hdr->lseg); in pnfs_writehdr_free()
1909 nfs_pgio_header_free(hdr); in pnfs_writehdr_free()
1917 struct nfs_pgio_header *hdr; in pnfs_generic_pg_writepages() local
1920 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_writepages()
1921 if (!hdr) { in pnfs_generic_pg_writepages()
1925 nfs_pgheader_init(desc, hdr, pnfs_writehdr_free); in pnfs_generic_pg_writepages()
1927 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_writepages()
1928 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_writepages()
1930 pnfs_do_write(desc, hdr, desc->pg_ioflags); in pnfs_generic_pg_writepages()
1936 int pnfs_read_done_resend_to_mds(struct nfs_pgio_header *hdr) in pnfs_read_done_resend_to_mds() argument
1941 nfs_pageio_init_read(&pgio, hdr->inode, true, hdr->completion_ops); in pnfs_read_done_resend_to_mds()
1942 return nfs_pageio_resend(&pgio, hdr); in pnfs_read_done_resend_to_mds()
1946 static void pnfs_ld_handle_read_error(struct nfs_pgio_header *hdr) in pnfs_ld_handle_read_error() argument
1948 dprintk("pnfs read error = %d\n", hdr->pnfs_error); in pnfs_ld_handle_read_error()
1949 if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags & in pnfs_ld_handle_read_error()
1951 pnfs_return_layout(hdr->inode); in pnfs_ld_handle_read_error()
1953 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) in pnfs_ld_handle_read_error()
1954 hdr->task.tk_status = pnfs_read_done_resend_to_mds(hdr); in pnfs_ld_handle_read_error()
1960 void pnfs_ld_read_done(struct nfs_pgio_header *hdr) in pnfs_ld_read_done() argument
1962 trace_nfs4_pnfs_read(hdr, hdr->pnfs_error); in pnfs_ld_read_done()
1963 if (likely(!hdr->pnfs_error)) { in pnfs_ld_read_done()
1964 __nfs4_read_done_cb(hdr); in pnfs_ld_read_done()
1965 hdr->mds_ops->rpc_call_done(&hdr->task, hdr); in pnfs_ld_read_done()
1967 pnfs_ld_handle_read_error(hdr); in pnfs_ld_read_done()
1968 hdr->mds_ops->rpc_release(hdr); in pnfs_ld_read_done()
1974 struct nfs_pgio_header *hdr) in pnfs_read_through_mds() argument
1978 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in pnfs_read_through_mds()
1979 list_splice_tail_init(&hdr->pages, &mirror->pg_list); in pnfs_read_through_mds()
1983 nfs_pgio_data_destroy(hdr); in pnfs_read_through_mds()
1984 hdr->release(hdr); in pnfs_read_through_mds()
1991 pnfs_try_to_read_data(struct nfs_pgio_header *hdr, in pnfs_try_to_read_data() argument
1995 struct inode *inode = hdr->inode; in pnfs_try_to_read_data()
1999 hdr->mds_ops = call_ops; in pnfs_try_to_read_data()
2002 __func__, inode->i_ino, hdr->args.count, hdr->args.offset); in pnfs_try_to_read_data()
2004 trypnfs = nfss->pnfs_curr_ld->read_pagelist(hdr); in pnfs_try_to_read_data()
2012 int pnfs_read_resend_pnfs(struct nfs_pgio_header *hdr) in pnfs_read_resend_pnfs() argument
2016 nfs_pageio_init_read(&pgio, hdr->inode, false, hdr->completion_ops); in pnfs_read_resend_pnfs()
2017 return nfs_pageio_resend(&pgio, hdr); in pnfs_read_resend_pnfs()
2022 pnfs_do_read(struct nfs_pageio_descriptor *desc, struct nfs_pgio_header *hdr) in pnfs_do_read() argument
2029 trypnfs = pnfs_try_to_read_data(hdr, call_ops, lseg); in pnfs_do_read()
2031 err = pnfs_read_resend_pnfs(hdr); in pnfs_do_read()
2033 pnfs_read_through_mds(desc, hdr); in pnfs_do_read()
2036 static void pnfs_readhdr_free(struct nfs_pgio_header *hdr) in pnfs_readhdr_free() argument
2038 pnfs_put_lseg(hdr->lseg); in pnfs_readhdr_free()
2039 nfs_pgio_header_free(hdr); in pnfs_readhdr_free()
2047 struct nfs_pgio_header *hdr; in pnfs_generic_pg_readpages() local
2050 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in pnfs_generic_pg_readpages()
2051 if (!hdr) { in pnfs_generic_pg_readpages()
2055 nfs_pgheader_init(desc, hdr, pnfs_readhdr_free); in pnfs_generic_pg_readpages()
2056 hdr->lseg = pnfs_get_lseg(desc->pg_lseg); in pnfs_generic_pg_readpages()
2057 ret = nfs_generic_pgio(desc, hdr); in pnfs_generic_pg_readpages()
2059 pnfs_do_read(desc, hdr); in pnfs_generic_pg_readpages()