Lines Matching refs:hdr
88 static void filelayout_reset_write(struct nfs_pgio_header *hdr) in filelayout_reset_write() argument
90 struct rpc_task *task = &hdr->task; in filelayout_reset_write()
92 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_write()
95 hdr->task.tk_pid, in filelayout_reset_write()
96 hdr->inode->i_sb->s_id, in filelayout_reset_write()
97 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_write()
98 hdr->args.count, in filelayout_reset_write()
99 (unsigned long long)hdr->args.offset); in filelayout_reset_write()
101 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in filelayout_reset_write()
105 static void filelayout_reset_read(struct nfs_pgio_header *hdr) in filelayout_reset_read() argument
107 struct rpc_task *task = &hdr->task; in filelayout_reset_read()
109 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_read()
112 hdr->task.tk_pid, in filelayout_reset_read()
113 hdr->inode->i_sb->s_id, in filelayout_reset_read()
114 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_read()
115 hdr->args.count, in filelayout_reset_read()
116 (unsigned long long)hdr->args.offset); in filelayout_reset_read()
118 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in filelayout_reset_read()
229 struct nfs_pgio_header *hdr) in filelayout_read_done_cb() argument
233 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
234 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
235 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb()
239 filelayout_reset_read(hdr); in filelayout_read_done_cb()
255 filelayout_set_layoutcommit(struct nfs_pgio_header *hdr) in filelayout_set_layoutcommit() argument
258 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit()
259 hdr->res.verf->committed != NFS_DATA_SYNC) in filelayout_set_layoutcommit()
262 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, in filelayout_set_layoutcommit()
263 hdr->mds_offset + hdr->res.count); in filelayout_set_layoutcommit()
264 dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, in filelayout_set_layoutcommit()
265 (unsigned long) NFS_I(hdr->inode)->layout->plh_lwb); in filelayout_set_layoutcommit()
290 struct nfs_pgio_header *hdr = data; in filelayout_read_prepare() local
292 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_read_prepare()
296 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_read_prepare()
298 filelayout_reset_read(hdr); in filelayout_read_prepare()
302 hdr->pgio_done_cb = filelayout_read_done_cb; in filelayout_read_prepare()
304 if (nfs41_setup_sequence(hdr->ds_clp->cl_session, in filelayout_read_prepare()
305 &hdr->args.seq_args, in filelayout_read_prepare()
306 &hdr->res.seq_res, in filelayout_read_prepare()
309 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_read_prepare()
310 hdr->args.lock_context, FMODE_READ) == -EIO) in filelayout_read_prepare()
316 struct nfs_pgio_header *hdr = data; in filelayout_read_call_done() local
320 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_read_call_done()
322 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
327 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
332 struct nfs_pgio_header *hdr = data; in filelayout_read_count_stats() local
334 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
338 struct nfs_pgio_header *hdr) in filelayout_write_done_cb() argument
342 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
343 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
344 hdr->ds_clp, hdr->lseg); in filelayout_write_done_cb()
348 filelayout_reset_write(hdr); in filelayout_write_done_cb()
355 filelayout_set_layoutcommit(hdr); in filelayout_write_done_cb()
385 struct nfs_pgio_header *hdr = data; in filelayout_write_prepare() local
387 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_write_prepare()
391 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_write_prepare()
393 filelayout_reset_write(hdr); in filelayout_write_prepare()
397 if (nfs41_setup_sequence(hdr->ds_clp->cl_session, in filelayout_write_prepare()
398 &hdr->args.seq_args, in filelayout_write_prepare()
399 &hdr->res.seq_res, in filelayout_write_prepare()
402 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_write_prepare()
403 hdr->args.lock_context, FMODE_WRITE) == -EIO) in filelayout_write_prepare()
409 struct nfs_pgio_header *hdr = data; in filelayout_write_call_done() local
411 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_write_call_done()
413 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
418 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
423 struct nfs_pgio_header *hdr = data; in filelayout_write_count_stats() local
425 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
467 filelayout_read_pagelist(struct nfs_pgio_header *hdr) in filelayout_read_pagelist() argument
469 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_read_pagelist()
472 loff_t offset = hdr->args.offset; in filelayout_read_pagelist()
477 __func__, hdr->inode->i_ino, in filelayout_read_pagelist()
478 hdr->args.pgbase, (size_t)hdr->args.count, offset); in filelayout_read_pagelist()
487 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_read_pagelist()
496 hdr->ds_clp = ds->ds_clp; in filelayout_read_pagelist()
497 hdr->ds_commit_idx = idx; in filelayout_read_pagelist()
500 hdr->args.fh = fh; in filelayout_read_pagelist()
502 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_read_pagelist()
503 hdr->mds_offset = offset; in filelayout_read_pagelist()
506 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_read_pagelist()
507 NFS_PROTO(hdr->inode), &filelayout_read_call_ops, in filelayout_read_pagelist()
514 filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync) in filelayout_write_pagelist() argument
516 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_write_pagelist()
519 loff_t offset = hdr->args.offset; in filelayout_write_pagelist()
530 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_write_pagelist()
535 __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, in filelayout_write_pagelist()
538 hdr->pgio_done_cb = filelayout_write_done_cb; in filelayout_write_pagelist()
540 hdr->ds_clp = ds->ds_clp; in filelayout_write_pagelist()
541 hdr->ds_commit_idx = idx; in filelayout_write_pagelist()
544 hdr->args.fh = fh; in filelayout_write_pagelist()
545 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_write_pagelist()
548 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_write_pagelist()
549 NFS_PROTO(hdr->inode), &filelayout_write_call_ops, in filelayout_write_pagelist()