Lines Matching refs:hdr
89 static void filelayout_reset_write(struct nfs_pgio_header *hdr) in filelayout_reset_write() argument
91 struct rpc_task *task = &hdr->task; in filelayout_reset_write()
93 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_write()
96 hdr->task.tk_pid, in filelayout_reset_write()
97 hdr->inode->i_sb->s_id, in filelayout_reset_write()
98 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_write()
99 hdr->args.count, in filelayout_reset_write()
100 (unsigned long long)hdr->args.offset); in filelayout_reset_write()
102 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in filelayout_reset_write()
106 static void filelayout_reset_read(struct nfs_pgio_header *hdr) in filelayout_reset_read() argument
108 struct rpc_task *task = &hdr->task; in filelayout_reset_read()
110 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in filelayout_reset_read()
113 hdr->task.tk_pid, in filelayout_reset_read()
114 hdr->inode->i_sb->s_id, in filelayout_reset_read()
115 (unsigned long long)NFS_FILEID(hdr->inode), in filelayout_reset_read()
116 hdr->args.count, in filelayout_reset_read()
117 (unsigned long long)hdr->args.offset); in filelayout_reset_read()
119 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in filelayout_reset_read()
204 struct nfs_pgio_header *hdr) in filelayout_read_done_cb() argument
208 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
209 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
210 hdr->ds_clp, hdr->lseg); in filelayout_read_done_cb()
214 filelayout_reset_read(hdr); in filelayout_read_done_cb()
230 filelayout_set_layoutcommit(struct nfs_pgio_header *hdr) in filelayout_set_layoutcommit() argument
234 if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds || in filelayout_set_layoutcommit()
235 hdr->res.verf->committed == NFS_FILE_SYNC) in filelayout_set_layoutcommit()
237 if (hdr->res.verf->committed == NFS_DATA_SYNC) in filelayout_set_layoutcommit()
238 end_offs = hdr->mds_offset + (loff_t)hdr->res.count; in filelayout_set_layoutcommit()
241 pnfs_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); in filelayout_set_layoutcommit()
242 dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, in filelayout_set_layoutcommit()
243 (unsigned long) NFS_I(hdr->inode)->layout->plh_lwb); in filelayout_set_layoutcommit()
268 struct nfs_pgio_header *hdr = data; in filelayout_read_prepare() local
270 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_read_prepare()
274 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_read_prepare()
276 filelayout_reset_read(hdr); in filelayout_read_prepare()
280 hdr->pgio_done_cb = filelayout_read_done_cb; in filelayout_read_prepare()
282 if (nfs4_setup_sequence(hdr->ds_clp, in filelayout_read_prepare()
283 &hdr->args.seq_args, in filelayout_read_prepare()
284 &hdr->res.seq_res, in filelayout_read_prepare()
287 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_read_prepare()
288 hdr->args.lock_context, FMODE_READ) == -EIO) in filelayout_read_prepare()
294 struct nfs_pgio_header *hdr = data; in filelayout_read_call_done() local
296 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_read_call_done()
298 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
303 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
308 struct nfs_pgio_header *hdr = data; in filelayout_read_count_stats() local
310 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
314 struct nfs_pgio_header *hdr) in filelayout_write_done_cb() argument
318 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
319 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
320 hdr->ds_clp, hdr->lseg); in filelayout_write_done_cb()
324 filelayout_reset_write(hdr); in filelayout_write_done_cb()
331 filelayout_set_layoutcommit(hdr); in filelayout_write_done_cb()
334 hdr->fattr.valid = 0; in filelayout_write_done_cb()
336 nfs_writeback_update_inode(hdr); in filelayout_write_done_cb()
366 struct nfs_pgio_header *hdr = data; in filelayout_write_prepare() local
368 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in filelayout_write_prepare()
372 if (filelayout_reset_to_mds(hdr->lseg)) { in filelayout_write_prepare()
374 filelayout_reset_write(hdr); in filelayout_write_prepare()
378 if (nfs4_setup_sequence(hdr->ds_clp, in filelayout_write_prepare()
379 &hdr->args.seq_args, in filelayout_write_prepare()
380 &hdr->res.seq_res, in filelayout_write_prepare()
383 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context, in filelayout_write_prepare()
384 hdr->args.lock_context, FMODE_WRITE) == -EIO) in filelayout_write_prepare()
390 struct nfs_pgio_header *hdr = data; in filelayout_write_call_done() local
392 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in filelayout_write_call_done()
394 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
399 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
404 struct nfs_pgio_header *hdr = data; in filelayout_write_count_stats() local
406 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
448 filelayout_read_pagelist(struct nfs_pgio_header *hdr) in filelayout_read_pagelist() argument
450 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_read_pagelist()
453 loff_t offset = hdr->args.offset; in filelayout_read_pagelist()
458 __func__, hdr->inode->i_ino, in filelayout_read_pagelist()
459 hdr->args.pgbase, (size_t)hdr->args.count, offset); in filelayout_read_pagelist()
468 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_read_pagelist()
477 hdr->ds_clp = ds->ds_clp; in filelayout_read_pagelist()
478 hdr->ds_commit_idx = idx; in filelayout_read_pagelist()
481 hdr->args.fh = fh; in filelayout_read_pagelist()
483 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_read_pagelist()
484 hdr->mds_offset = offset; in filelayout_read_pagelist()
487 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_read_pagelist()
488 NFS_PROTO(hdr->inode), &filelayout_read_call_ops, in filelayout_read_pagelist()
495 filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync) in filelayout_write_pagelist() argument
497 struct pnfs_layout_segment *lseg = hdr->lseg; in filelayout_write_pagelist()
500 loff_t offset = hdr->args.offset; in filelayout_write_pagelist()
511 ds_clnt = nfs4_find_or_create_ds_client(ds->ds_clp, hdr->inode); in filelayout_write_pagelist()
516 __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, in filelayout_write_pagelist()
519 hdr->pgio_done_cb = filelayout_write_done_cb; in filelayout_write_pagelist()
521 hdr->ds_clp = ds->ds_clp; in filelayout_write_pagelist()
522 hdr->ds_commit_idx = idx; in filelayout_write_pagelist()
525 hdr->args.fh = fh; in filelayout_write_pagelist()
526 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); in filelayout_write_pagelist()
529 nfs_initiate_pgio(ds_clnt, hdr, hdr->cred, in filelayout_write_pagelist()
530 NFS_PROTO(hdr->inode), &filelayout_write_call_ops, in filelayout_write_pagelist()