Lines Matching refs:hdr

113 bool nfs_read_alloc_scratch(struct nfs_pgio_header *hdr, size_t size)  in nfs_read_alloc_scratch()  argument
115 WARN_ON(hdr->res.scratch != NULL); in nfs_read_alloc_scratch()
116 hdr->res.scratch = kmalloc(size, GFP_KERNEL); in nfs_read_alloc_scratch()
117 return hdr->res.scratch != NULL; in nfs_read_alloc_scratch()
140 static void nfs_read_completion(struct nfs_pgio_header *hdr) in nfs_read_completion() argument
145 if (test_bit(NFS_IOHDR_REDO, &hdr->flags)) in nfs_read_completion()
147 while (!list_empty(&hdr->pages)) { in nfs_read_completion()
148 struct nfs_page *req = nfs_list_entry(hdr->pages.next); in nfs_read_completion()
153 if (test_bit(NFS_IOHDR_EOF, &hdr->flags)) { in nfs_read_completion()
157 if (bytes > hdr->good_bytes) { in nfs_read_completion()
162 } else if (hdr->good_bytes - bytes < req->wb_bytes) { in nfs_read_completion()
165 start += hdr->good_bytes - bytes; in nfs_read_completion()
172 if (test_bit(NFS_IOHDR_ERROR, &hdr->flags)) { in nfs_read_completion()
173 if (bytes <= hdr->good_bytes) in nfs_read_completion()
176 error = hdr->error; in nfs_read_completion()
184 nfs_netfs_read_completion(hdr); in nfs_read_completion()
187 hdr->release(hdr); in nfs_read_completion()
190 static void nfs_initiate_read(struct nfs_pgio_header *hdr, in nfs_initiate_read() argument
195 rpc_ops->read_setup(hdr, msg); in nfs_initiate_read()
196 nfs_netfs_initiate_read(hdr); in nfs_initiate_read()
197 trace_nfs_initiate_read(hdr); in nfs_initiate_read()
222 struct nfs_pgio_header *hdr, in nfs_readpage_done() argument
225 int status = NFS_PROTO(inode)->read_done(task, hdr); in nfs_readpage_done()
229 nfs_add_stats(inode, NFSIOS_SERVERREADBYTES, hdr->res.count); in nfs_readpage_done()
230 trace_nfs_readpage_done(task, hdr); in nfs_readpage_done()
240 struct nfs_pgio_header *hdr) in nfs_readpage_retry() argument
242 struct nfs_pgio_args *argp = &hdr->args; in nfs_readpage_retry()
243 struct nfs_pgio_res *resp = &hdr->res; in nfs_readpage_retry()
246 nfs_inc_stats(hdr->inode, NFSIOS_SHORTREAD); in nfs_readpage_retry()
247 trace_nfs_readpage_short(task, hdr); in nfs_readpage_retry()
251 nfs_set_pgio_error(hdr, -EIO, argp->offset); in nfs_readpage_retry()
257 hdr->pnfs_error = -EAGAIN; in nfs_readpage_retry()
262 hdr->mds_offset += resp->count; in nfs_readpage_retry()
272 struct nfs_pgio_header *hdr) in nfs_readpage_result() argument
274 if (hdr->res.eof) { in nfs_readpage_result()
275 loff_t pos = hdr->args.offset + hdr->res.count; in nfs_readpage_result()
276 unsigned int new = pos - hdr->io_start; in nfs_readpage_result()
278 if (hdr->good_bytes > new) { in nfs_readpage_result()
279 hdr->good_bytes = new; in nfs_readpage_result()
280 set_bit(NFS_IOHDR_EOF, &hdr->flags); in nfs_readpage_result()
281 clear_bit(NFS_IOHDR_ERROR, &hdr->flags); in nfs_readpage_result()
283 } else if (hdr->res.count < hdr->args.count) in nfs_readpage_result()
284 nfs_readpage_retry(task, hdr); in nfs_readpage_result()