Lines Matching refs:hdr

87 static void filelayout_reset_write(struct nfs_pgio_header *hdr)  in filelayout_reset_write()  argument
89 struct rpc_task *task = &hdr->task; in filelayout_reset_write()
91 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_write()
94 hdr->task.tk_pid, in filelayout_reset_write()
95 hdr->inode->i_sb->s_id, in filelayout_reset_write()
96 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_write()
97 hdr->args.count, in filelayout_reset_write()
98 (unsigned long long)hdr->args.offset); in filelayout_reset_write()
100 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in filelayout_reset_write()
104 static void filelayout_reset_read(struct nfs_pgio_header *hdr) in filelayout_reset_read() argument
106 struct rpc_task *task = &hdr->task; in filelayout_reset_read()
108 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_read()
111 hdr->task.tk_pid, in filelayout_reset_read()
112 hdr->inode->i_sb->s_id, in filelayout_reset_read()
113 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_read()
114 hdr->args.count, in filelayout_reset_read()
115 (unsigned long long)hdr->args.offset); in filelayout_reset_read()
117 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in filelayout_reset_read()
228 struct nfs_pgio_header *hdr) in filelayout_read_done_cb() argument
232 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
233 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
234 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb()
238 filelayout_reset_read(hdr); in filelayout_read_done_cb()
254 filelayout_set_layoutcommit(struct nfs_pgio_header *hdr) in filelayout_set_layoutcommit() argument
257 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit()
258 hdr->res.verf->committed != NFS_DATA_SYNC) in filelayout_set_layoutcommit()
261 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, in filelayout_set_layoutcommit()
262 hdr->mds_offset + hdr->res.count); in filelayout_set_layoutcommit()
263 dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, in filelayout_set_layoutcommit()
264 (unsigned long) NFS_I(hdr->inode)->layout->plh_lwb); in filelayout_set_layoutcommit()
289 struct nfs_pgio_header *hdr = data; in filelayout_read_prepare() local
291 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_read_prepare()
295 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_read_prepare()
297 filelayout_reset_read(hdr); in filelayout_read_prepare()
301 hdr->pgio_done_cb = filelayout_read_done_cb; in filelayout_read_prepare()
303 if (nfs41_setup_sequence(hdr->ds_clp->cl_session, in filelayout_read_prepare()
304 &hdr->args.seq_args, in filelayout_read_prepare()
305 &hdr->res.seq_res, in filelayout_read_prepare()
308 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_read_prepare()
309 hdr->args.lock_context, FMODE_READ) == -EIO) in filelayout_read_prepare()
315 struct nfs_pgio_header *hdr = data; in filelayout_read_call_done() local
319 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_read_call_done()
321 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
326 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
331 struct nfs_pgio_header *hdr = data; in filelayout_read_count_stats() local
333 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
337 struct nfs_pgio_header *hdr) in filelayout_write_done_cb() argument
341 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
342 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
343 hdr->ds_clp, hdr->lseg); in filelayout_write_done_cb()
347 filelayout_reset_write(hdr); in filelayout_write_done_cb()
354 filelayout_set_layoutcommit(hdr); in filelayout_write_done_cb()
384 struct nfs_pgio_header *hdr = data; in filelayout_write_prepare() local
386 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_write_prepare()
390 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_write_prepare()
392 filelayout_reset_write(hdr); in filelayout_write_prepare()
396 if (nfs41_setup_sequence(hdr->ds_clp->cl_session, in filelayout_write_prepare()
397 &hdr->args.seq_args, in filelayout_write_prepare()
398 &hdr->res.seq_res, in filelayout_write_prepare()
401 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_write_prepare()
402 hdr->args.lock_context, FMODE_WRITE) == -EIO) in filelayout_write_prepare()
408 struct nfs_pgio_header *hdr = data; in filelayout_write_call_done() local
410 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_write_call_done()
412 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
417 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
422 struct nfs_pgio_header *hdr = data; in filelayout_write_count_stats() local
424 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
466 filelayout_read_pagelist(struct nfs_pgio_header *hdr) in filelayout_read_pagelist() argument
468 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_read_pagelist()
471 loff_t offset = hdr->args.offset; in filelayout_read_pagelist()
476 __func__, hdr->inode->i_ino, in filelayout_read_pagelist()
477 hdr->args.pgbase, (size_t)hdr->args.count, offset); in filelayout_read_pagelist()
486 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_read_pagelist()
495 hdr->ds_clp = ds->ds_clp; in filelayout_read_pagelist()
496 hdr->ds_commit_idx = idx; in filelayout_read_pagelist()
499 hdr->args.fh = fh; in filelayout_read_pagelist()
501 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_read_pagelist()
502 hdr->mds_offset = offset; in filelayout_read_pagelist()
505 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_read_pagelist()
506 NFS_PROTO(hdr->inode), &filelayout_read_call_ops, in filelayout_read_pagelist()
513 filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync) in filelayout_write_pagelist() argument
515 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_write_pagelist()
518 loff_t offset = hdr->args.offset; in filelayout_write_pagelist()
529 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_write_pagelist()
534 __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, in filelayout_write_pagelist()
537 hdr->pgio_done_cb = filelayout_write_done_cb; in filelayout_write_pagelist()
539 hdr->ds_clp = ds->ds_clp; in filelayout_write_pagelist()
540 hdr->ds_commit_idx = idx; in filelayout_write_pagelist()
543 hdr->args.fh = fh; in filelayout_write_pagelist()
544 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_write_pagelist()
547 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_write_pagelist()
548 NFS_PROTO(hdr->inode), &filelayout_write_call_ops, in filelayout_write_pagelist()