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()
203 struct nfs_pgio_header *hdr) in filelayout_read_done_cb() argument
207 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
208 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
209 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb()
213 filelayout_reset_read(hdr); in filelayout_read_done_cb()
229 filelayout_set_layoutcommit(struct nfs_pgio_header *hdr) in filelayout_set_layoutcommit() argument
233 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit()
234 hdr->res.verf->committed == NFS_FILE_SYNC) in filelayout_set_layoutcommit()
236 if (hdr->res.verf->committed == NFS_DATA_SYNC) in filelayout_set_layoutcommit()
237 end_offs = hdr->mds_offset + (loff_t)hdr->res.count; in filelayout_set_layoutcommit()
240 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); in filelayout_set_layoutcommit()
241 dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, in filelayout_set_layoutcommit()
242 (unsigned long) NFS_I(hdr->inode)->layout->plh_lwb); in filelayout_set_layoutcommit()
267 struct nfs_pgio_header *hdr = data; in filelayout_read_prepare() local
269 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_read_prepare()
273 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_read_prepare()
275 filelayout_reset_read(hdr); in filelayout_read_prepare()
279 hdr->pgio_done_cb = filelayout_read_done_cb; in filelayout_read_prepare()
281 if (nfs4_setup_sequence(hdr->ds_clp, in filelayout_read_prepare()
282 &hdr->args.seq_args, in filelayout_read_prepare()
283 &hdr->res.seq_res, in filelayout_read_prepare()
286 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_read_prepare()
287 hdr->args.lock_context, FMODE_READ) == -EIO) in filelayout_read_prepare()
293 struct nfs_pgio_header *hdr = data; in filelayout_read_call_done() local
297 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_read_call_done()
299 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
304 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
309 struct nfs_pgio_header *hdr = data; in filelayout_read_count_stats() local
311 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
315 struct nfs_pgio_header *hdr) in filelayout_write_done_cb() argument
319 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
320 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
321 hdr->ds_clp, hdr->lseg); in filelayout_write_done_cb()
325 filelayout_reset_write(hdr); in filelayout_write_done_cb()
332 filelayout_set_layoutcommit(hdr); in filelayout_write_done_cb()
335 hdr->fattr.valid = 0; in filelayout_write_done_cb()
337 nfs_writeback_update_inode(hdr); in filelayout_write_done_cb()
367 struct nfs_pgio_header *hdr = data; in filelayout_write_prepare() local
369 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_write_prepare()
373 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_write_prepare()
375 filelayout_reset_write(hdr); in filelayout_write_prepare()
379 if (nfs4_setup_sequence(hdr->ds_clp, in filelayout_write_prepare()
380 &hdr->args.seq_args, in filelayout_write_prepare()
381 &hdr->res.seq_res, in filelayout_write_prepare()
384 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_write_prepare()
385 hdr->args.lock_context, FMODE_WRITE) == -EIO) in filelayout_write_prepare()
391 struct nfs_pgio_header *hdr = data; in filelayout_write_call_done() local
393 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_write_call_done()
395 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
400 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
405 struct nfs_pgio_header *hdr = data; in filelayout_write_count_stats() local
407 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
449 filelayout_read_pagelist(struct nfs_pgio_header *hdr) in filelayout_read_pagelist() argument
451 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_read_pagelist()
454 loff_t offset = hdr->args.offset; in filelayout_read_pagelist()
459 __func__, hdr->inode->i_ino, in filelayout_read_pagelist()
460 hdr->args.pgbase, (size_t)hdr->args.count, offset); in filelayout_read_pagelist()
469 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_read_pagelist()
478 hdr->ds_clp = ds->ds_clp; in filelayout_read_pagelist()
479 hdr->ds_commit_idx = idx; in filelayout_read_pagelist()
482 hdr->args.fh = fh; in filelayout_read_pagelist()
484 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_read_pagelist()
485 hdr->mds_offset = offset; in filelayout_read_pagelist()
488 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_read_pagelist()
489 NFS_PROTO(hdr->inode), &filelayout_read_call_ops, in filelayout_read_pagelist()
496 filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync) in filelayout_write_pagelist() argument
498 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_write_pagelist()
501 loff_t offset = hdr->args.offset; in filelayout_write_pagelist()
512 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_write_pagelist()
517 __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, in filelayout_write_pagelist()
520 hdr->pgio_done_cb = filelayout_write_done_cb; in filelayout_write_pagelist()
522 hdr->ds_clp = ds->ds_clp; in filelayout_write_pagelist()
523 hdr->ds_commit_idx = idx; in filelayout_write_pagelist()
526 hdr->args.fh = fh; in filelayout_write_pagelist()
527 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_write_pagelist()
530 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_write_pagelist()
531 NFS_PROTO(hdr->inode), &filelayout_write_call_ops, in filelayout_write_pagelist()