Lines Matching refs:hdr
34 struct nfs_pgio_header *hdr);
994 static void ff_layout_reset_write(struct nfs_pgio_header *hdr, bool retry_pnfs) in ff_layout_reset_write() argument
996 struct rpc_task *task = &hdr->task; in ff_layout_reset_write()
998 pnfs_layoutcommit_inode(hdr->inode, false); in ff_layout_reset_write()
1003 hdr->task.tk_pid, in ff_layout_reset_write()
1004 hdr->inode->i_sb->s_id, in ff_layout_reset_write()
1005 (unsigned long long)NFS_FILEID(hdr->inode), in ff_layout_reset_write()
1006 hdr->args.count, in ff_layout_reset_write()
1007 (unsigned long long)hdr->args.offset); in ff_layout_reset_write()
1009 hdr->completion_ops->reschedule_io(hdr); in ff_layout_reset_write()
1013 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in ff_layout_reset_write()
1016 hdr->task.tk_pid, in ff_layout_reset_write()
1017 hdr->inode->i_sb->s_id, in ff_layout_reset_write()
1018 (unsigned long long)NFS_FILEID(hdr->inode), in ff_layout_reset_write()
1019 hdr->args.count, in ff_layout_reset_write()
1020 (unsigned long long)hdr->args.offset); in ff_layout_reset_write()
1022 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in ff_layout_reset_write()
1026 static void ff_layout_reset_read(struct nfs_pgio_header *hdr) in ff_layout_reset_read() argument
1028 struct rpc_task *task = &hdr->task; in ff_layout_reset_read()
1030 pnfs_layoutcommit_inode(hdr->inode, false); in ff_layout_reset_read()
1032 if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) { in ff_layout_reset_read()
1035 hdr->task.tk_pid, in ff_layout_reset_read()
1036 hdr->inode->i_sb->s_id, in ff_layout_reset_read()
1037 (unsigned long long)NFS_FILEID(hdr->inode), in ff_layout_reset_read()
1038 hdr->args.count, in ff_layout_reset_read()
1039 (unsigned long long)hdr->args.offset); in ff_layout_reset_read()
1041 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in ff_layout_reset_read()
1232 struct nfs_pgio_header *hdr) in ff_layout_read_done_cb() argument
1236 trace_nfs4_pnfs_read(hdr, task->tk_status); in ff_layout_read_done_cb()
1238 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx, in ff_layout_read_done_cb()
1239 hdr->args.offset, hdr->args.count, in ff_layout_read_done_cb()
1240 hdr->res.op_status, OP_READ, in ff_layout_read_done_cb()
1242 err = ff_layout_async_handle_error(task, hdr->args.context->state, in ff_layout_read_done_cb()
1243 hdr->ds_clp, hdr->lseg, in ff_layout_read_done_cb()
1244 hdr->pgio_mirror_idx); in ff_layout_read_done_cb()
1248 if (ff_layout_choose_best_ds_for_read(hdr->lseg, in ff_layout_read_done_cb()
1249 hdr->pgio_mirror_idx + 1, in ff_layout_read_done_cb()
1250 &hdr->pgio_mirror_idx)) in ff_layout_read_done_cb()
1252 ff_layout_read_record_layoutstats_done(task, hdr); in ff_layout_read_done_cb()
1253 pnfs_read_resend_pnfs(hdr); in ff_layout_read_done_cb()
1256 ff_layout_reset_read(hdr); in ff_layout_read_done_cb()
1306 struct nfs_pgio_header *hdr) in ff_layout_read_record_layoutstats_start() argument
1308 if (test_and_set_bit(NFS_IOHDR_STAT, &hdr->flags)) in ff_layout_read_record_layoutstats_start()
1310 nfs4_ff_layout_stat_io_start_read(hdr->inode, in ff_layout_read_record_layoutstats_start()
1311 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_read_record_layoutstats_start()
1312 hdr->args.count, in ff_layout_read_record_layoutstats_start()
1317 struct nfs_pgio_header *hdr) in ff_layout_read_record_layoutstats_done() argument
1319 if (!test_and_clear_bit(NFS_IOHDR_STAT, &hdr->flags)) in ff_layout_read_record_layoutstats_done()
1322 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_read_record_layoutstats_done()
1323 hdr->args.count, in ff_layout_read_record_layoutstats_done()
1324 hdr->res.count); in ff_layout_read_record_layoutstats_done()
1328 struct nfs_pgio_header *hdr) in ff_layout_read_prepare_common() argument
1330 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in ff_layout_read_prepare_common()
1334 if (ff_layout_device_unavailable(hdr->lseg, hdr->pgio_mirror_idx)) { in ff_layout_read_prepare_common()
1339 ff_layout_read_record_layoutstats_start(task, hdr); in ff_layout_read_prepare_common()
1350 struct nfs_pgio_header *hdr = data; in ff_layout_read_prepare_v3() local
1352 if (ff_layout_read_prepare_common(task, hdr)) in ff_layout_read_prepare_v3()
1360 struct nfs_pgio_header *hdr = data; in ff_layout_read_prepare_v4() local
1362 if (nfs4_setup_sequence(hdr->ds_clp, in ff_layout_read_prepare_v4()
1363 &hdr->args.seq_args, in ff_layout_read_prepare_v4()
1364 &hdr->res.seq_res, in ff_layout_read_prepare_v4()
1368 ff_layout_read_prepare_common(task, hdr); in ff_layout_read_prepare_v4()
1373 struct nfs_pgio_header *hdr = data; in ff_layout_read_call_done() local
1377 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in ff_layout_read_call_done()
1379 nfs4_sequence_done(task, &hdr->res.seq_res); in ff_layout_read_call_done()
1384 hdr->mds_ops->rpc_call_done(task, hdr); in ff_layout_read_call_done()
1389 struct nfs_pgio_header *hdr = data; in ff_layout_read_count_stats() local
1391 ff_layout_read_record_layoutstats_done(task, hdr); in ff_layout_read_count_stats()
1393 &NFS_CLIENT(hdr->inode)->cl_metrics[NFSPROC4_CLNT_READ]); in ff_layout_read_count_stats()
1398 struct nfs_pgio_header *hdr = data; in ff_layout_read_release() local
1400 ff_layout_read_record_layoutstats_done(&hdr->task, hdr); in ff_layout_read_release()
1406 struct nfs_pgio_header *hdr) in ff_layout_write_done_cb() argument
1411 trace_nfs4_pnfs_write(hdr, task->tk_status); in ff_layout_write_done_cb()
1413 ff_layout_io_track_ds_error(hdr->lseg, hdr->pgio_mirror_idx, in ff_layout_write_done_cb()
1414 hdr->args.offset, hdr->args.count, in ff_layout_write_done_cb()
1415 hdr->res.op_status, OP_WRITE, in ff_layout_write_done_cb()
1417 err = ff_layout_async_handle_error(task, hdr->args.context->state, in ff_layout_write_done_cb()
1418 hdr->ds_clp, hdr->lseg, in ff_layout_write_done_cb()
1419 hdr->pgio_mirror_idx); in ff_layout_write_done_cb()
1423 ff_layout_reset_write(hdr, true); in ff_layout_write_done_cb()
1426 ff_layout_reset_write(hdr, false); in ff_layout_write_done_cb()
1432 if (hdr->res.verf->committed == NFS_FILE_SYNC || in ff_layout_write_done_cb()
1433 hdr->res.verf->committed == NFS_DATA_SYNC) in ff_layout_write_done_cb()
1434 end_offs = hdr->mds_offset + (loff_t)hdr->res.count; in ff_layout_write_done_cb()
1437 ff_layout_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); in ff_layout_write_done_cb()
1440 hdr->fattr.valid = 0; in ff_layout_write_done_cb()
1442 nfs_writeback_update_inode(hdr); in ff_layout_write_done_cb()
1479 struct nfs_pgio_header *hdr) in ff_layout_write_record_layoutstats_start() argument
1481 if (test_and_set_bit(NFS_IOHDR_STAT, &hdr->flags)) in ff_layout_write_record_layoutstats_start()
1483 nfs4_ff_layout_stat_io_start_write(hdr->inode, in ff_layout_write_record_layoutstats_start()
1484 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_write_record_layoutstats_start()
1485 hdr->args.count, in ff_layout_write_record_layoutstats_start()
1490 struct nfs_pgio_header *hdr) in ff_layout_write_record_layoutstats_done() argument
1492 if (!test_and_clear_bit(NFS_IOHDR_STAT, &hdr->flags)) in ff_layout_write_record_layoutstats_done()
1495 FF_LAYOUT_COMP(hdr->lseg, hdr->pgio_mirror_idx), in ff_layout_write_record_layoutstats_done()
1496 hdr->args.count, hdr->res.count, in ff_layout_write_record_layoutstats_done()
1497 hdr->res.verf->committed); in ff_layout_write_record_layoutstats_done()
1501 struct nfs_pgio_header *hdr) in ff_layout_write_prepare_common() argument
1503 if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) { in ff_layout_write_prepare_common()
1508 if (ff_layout_device_unavailable(hdr->lseg, hdr->pgio_mirror_idx)) { in ff_layout_write_prepare_common()
1513 ff_layout_write_record_layoutstats_start(task, hdr); in ff_layout_write_prepare_common()
1519 struct nfs_pgio_header *hdr = data; in ff_layout_write_prepare_v3() local
1521 if (ff_layout_write_prepare_common(task, hdr)) in ff_layout_write_prepare_v3()
1529 struct nfs_pgio_header *hdr = data; in ff_layout_write_prepare_v4() local
1531 if (nfs4_setup_sequence(hdr->ds_clp, in ff_layout_write_prepare_v4()
1532 &hdr->args.seq_args, in ff_layout_write_prepare_v4()
1533 &hdr->res.seq_res, in ff_layout_write_prepare_v4()
1537 ff_layout_write_prepare_common(task, hdr); in ff_layout_write_prepare_v4()
1542 struct nfs_pgio_header *hdr = data; in ff_layout_write_call_done() local
1544 if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && in ff_layout_write_call_done()
1546 nfs4_sequence_done(task, &hdr->res.seq_res); in ff_layout_write_call_done()
1551 hdr->mds_ops->rpc_call_done(task, hdr); in ff_layout_write_call_done()
1556 struct nfs_pgio_header *hdr = data; in ff_layout_write_count_stats() local
1558 ff_layout_write_record_layoutstats_done(task, hdr); in ff_layout_write_count_stats()
1560 &NFS_CLIENT(hdr->inode)->cl_metrics[NFSPROC4_CLNT_WRITE]); in ff_layout_write_count_stats()
1565 struct nfs_pgio_header *hdr = data; in ff_layout_write_release() local
1567 ff_layout_write_record_layoutstats_done(&hdr->task, hdr); in ff_layout_write_release()
1688 ff_layout_read_pagelist(struct nfs_pgio_header *hdr) in ff_layout_read_pagelist() argument
1690 struct pnfs_layout_segment *lseg = hdr->lseg; in ff_layout_read_pagelist()
1694 loff_t offset = hdr->args.offset; in ff_layout_read_pagelist()
1695 u32 idx = hdr->pgio_mirror_idx; in ff_layout_read_pagelist()
1700 __func__, hdr->inode->i_ino, in ff_layout_read_pagelist()
1701 hdr->args.pgbase, (size_t)hdr->args.count, offset); in ff_layout_read_pagelist()
1708 hdr->inode); in ff_layout_read_pagelist()
1712 ds_cred = ff_layout_get_ds_cred(lseg, idx, hdr->cred); in ff_layout_read_pagelist()
1721 hdr->pgio_done_cb = ff_layout_read_done_cb; in ff_layout_read_pagelist()
1723 hdr->ds_clp = ds->ds_clp; in ff_layout_read_pagelist()
1726 hdr->args.fh = fh; in ff_layout_read_pagelist()
1729 !nfs4_ff_layout_select_ds_stateid(lseg, idx, &hdr->args.stateid)) in ff_layout_read_pagelist()
1736 hdr->args.offset = offset; in ff_layout_read_pagelist()
1737 hdr->mds_offset = offset; in ff_layout_read_pagelist()
1740 nfs_initiate_pgio(ds_clnt, hdr, ds_cred, ds->ds_clp->rpc_ops, in ff_layout_read_pagelist()
1755 ff_layout_write_pagelist(struct nfs_pgio_header *hdr, int sync) in ff_layout_write_pagelist() argument
1757 struct pnfs_layout_segment *lseg = hdr->lseg; in ff_layout_write_pagelist()
1761 loff_t offset = hdr->args.offset; in ff_layout_write_pagelist()
1764 int idx = hdr->pgio_mirror_idx; in ff_layout_write_pagelist()
1771 hdr->inode); in ff_layout_write_pagelist()
1775 ds_cred = ff_layout_get_ds_cred(lseg, idx, hdr->cred); in ff_layout_write_pagelist()
1782 __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, in ff_layout_write_pagelist()
1786 hdr->pgio_done_cb = ff_layout_write_done_cb; in ff_layout_write_pagelist()
1788 hdr->ds_clp = ds->ds_clp; in ff_layout_write_pagelist()
1789 hdr->ds_commit_idx = idx; in ff_layout_write_pagelist()
1792 hdr->args.fh = fh; in ff_layout_write_pagelist()
1795 !nfs4_ff_layout_select_ds_stateid(lseg, idx, &hdr->args.stateid)) in ff_layout_write_pagelist()
1802 hdr->args.offset = offset; in ff_layout_write_pagelist()
1805 nfs_initiate_pgio(ds_clnt, hdr, ds_cred, ds->ds_clp->rpc_ops, in ff_layout_write_pagelist()