• Home
  • Raw
  • Download

Lines Matching refs:hdr

58 		       struct nfs_pgio_header *hdr,  in nfs_pgheader_init()  argument
59 void (*release)(struct nfs_pgio_header *hdr)) in nfs_pgheader_init() argument
64 hdr->req = nfs_list_entry(mirror->pg_list.next); in nfs_pgheader_init()
65 hdr->inode = desc->pg_inode; in nfs_pgheader_init()
66 hdr->cred = nfs_req_openctx(hdr->req)->cred; in nfs_pgheader_init()
67 hdr->io_start = req_offset(hdr->req); in nfs_pgheader_init()
68 hdr->good_bytes = mirror->pg_count; in nfs_pgheader_init()
69 hdr->io_completion = desc->pg_io_completion; in nfs_pgheader_init()
70 hdr->dreq = desc->pg_dreq; in nfs_pgheader_init()
71 hdr->release = release; in nfs_pgheader_init()
72 hdr->completion_ops = desc->pg_completion_ops; in nfs_pgheader_init()
73 if (hdr->completion_ops->init_hdr) in nfs_pgheader_init()
74 hdr->completion_ops->init_hdr(hdr); in nfs_pgheader_init()
76 hdr->pgio_mirror_idx = desc->pg_mirror_idx; in nfs_pgheader_init()
80 void nfs_set_pgio_error(struct nfs_pgio_header *hdr, int error, loff_t pos) in nfs_set_pgio_error() argument
82 unsigned int new = pos - hdr->io_start; in nfs_set_pgio_error()
84 trace_nfs_pgio_error(hdr, error, pos); in nfs_set_pgio_error()
85 if (hdr->good_bytes > new) { in nfs_set_pgio_error()
86 hdr->good_bytes = new; in nfs_set_pgio_error()
87 clear_bit(NFS_IOHDR_EOF, &hdr->flags); in nfs_set_pgio_error()
88 if (!test_and_set_bit(NFS_IOHDR_ERROR, &hdr->flags)) in nfs_set_pgio_error()
89 hdr->error = error; in nfs_set_pgio_error()
661 struct nfs_pgio_header *hdr = ops->rw_alloc_header(); in nfs_pgio_header_alloc() local
663 if (hdr) { in nfs_pgio_header_alloc()
664 INIT_LIST_HEAD(&hdr->pages); in nfs_pgio_header_alloc()
665 hdr->rw_ops = ops; in nfs_pgio_header_alloc()
667 return hdr; in nfs_pgio_header_alloc()
679 static void nfs_pgio_data_destroy(struct nfs_pgio_header *hdr) in nfs_pgio_data_destroy() argument
681 if (hdr->args.context) in nfs_pgio_data_destroy()
682 put_nfs_open_context(hdr->args.context); in nfs_pgio_data_destroy()
683 if (hdr->page_array.pagevec != hdr->page_array.page_array) in nfs_pgio_data_destroy()
684 kfree(hdr->page_array.pagevec); in nfs_pgio_data_destroy()
691 void nfs_pgio_header_free(struct nfs_pgio_header *hdr) in nfs_pgio_header_free() argument
693 nfs_pgio_data_destroy(hdr); in nfs_pgio_header_free()
694 hdr->rw_ops->rw_free_header(hdr); in nfs_pgio_header_free()
705 static void nfs_pgio_rpcsetup(struct nfs_pgio_header *hdr, in nfs_pgio_rpcsetup() argument
709 struct nfs_page *req = hdr->req; in nfs_pgio_rpcsetup()
714 hdr->args.fh = NFS_FH(hdr->inode); in nfs_pgio_rpcsetup()
715 hdr->args.offset = req_offset(req); in nfs_pgio_rpcsetup()
717 hdr->mds_offset = hdr->args.offset; in nfs_pgio_rpcsetup()
718 hdr->args.pgbase = req->wb_pgbase; in nfs_pgio_rpcsetup()
719 hdr->args.pages = hdr->page_array.pagevec; in nfs_pgio_rpcsetup()
720 hdr->args.count = count; in nfs_pgio_rpcsetup()
721 hdr->args.context = get_nfs_open_context(nfs_req_openctx(req)); in nfs_pgio_rpcsetup()
722 hdr->args.lock_context = req->wb_lock_context; in nfs_pgio_rpcsetup()
723 hdr->args.stable = NFS_UNSTABLE; in nfs_pgio_rpcsetup()
732 hdr->args.stable = NFS_FILE_SYNC; in nfs_pgio_rpcsetup()
735 hdr->res.fattr = &hdr->fattr; in nfs_pgio_rpcsetup()
736 hdr->res.count = 0; in nfs_pgio_rpcsetup()
737 hdr->res.eof = 0; in nfs_pgio_rpcsetup()
738 hdr->res.verf = &hdr->verf; in nfs_pgio_rpcsetup()
739 nfs_fattr_init(&hdr->fattr); in nfs_pgio_rpcsetup()
749 struct nfs_pgio_header *hdr = calldata; in nfs_pgio_prepare() local
751 err = NFS_PROTO(hdr->inode)->pgio_rpc_prepare(task, hdr); in nfs_pgio_prepare()
756 int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr, in nfs_initiate_pgio() argument
762 .rpc_argp = &hdr->args, in nfs_initiate_pgio()
763 .rpc_resp = &hdr->res, in nfs_initiate_pgio()
768 .task = &hdr->task, in nfs_initiate_pgio()
771 .callback_data = hdr, in nfs_initiate_pgio()
776 hdr->rw_ops->rw_initiate(hdr, &msg, rpc_ops, &task_setup_data, how); in nfs_initiate_pgio()
780 hdr->inode->i_sb->s_id, in nfs_initiate_pgio()
781 (unsigned long long)NFS_FILEID(hdr->inode), in nfs_initiate_pgio()
782 hdr->args.count, in nfs_initiate_pgio()
783 (unsigned long long)hdr->args.offset); in nfs_initiate_pgio()
797 static void nfs_pgio_error(struct nfs_pgio_header *hdr) in nfs_pgio_error() argument
799 set_bit(NFS_IOHDR_REDO, &hdr->flags); in nfs_pgio_error()
800 hdr->completion_ops->completion(hdr); in nfs_pgio_error()
809 struct nfs_pgio_header *hdr = calldata; in nfs_pgio_release() local
810 hdr->completion_ops->completion(hdr); in nfs_pgio_release()
870 struct nfs_pgio_header *hdr = calldata; in nfs_pgio_result() local
871 struct inode *inode = hdr->inode; in nfs_pgio_result()
876 if (hdr->rw_ops->rw_done(task, hdr, inode) != 0) in nfs_pgio_result()
879 nfs_set_pgio_error(hdr, task->tk_status, hdr->args.offset); in nfs_pgio_result()
881 hdr->rw_ops->rw_result(task, hdr); in nfs_pgio_result()
893 struct nfs_pgio_header *hdr) in nfs_generic_pgio() argument
902 struct nfs_page_array *pg_array = &hdr->page_array; in nfs_generic_pgio()
915 nfs_pgio_error(hdr); in nfs_generic_pgio()
922 pages = hdr->page_array.pagevec; in nfs_generic_pgio()
927 nfs_list_move_request(req, &hdr->pages); in nfs_generic_pgio()
937 nfs_pgio_error(hdr); in nfs_generic_pgio()
947 nfs_pgio_rpcsetup(hdr, mirror->pg_count, desc->pg_ioflags, &cinfo); in nfs_generic_pgio()
955 struct nfs_pgio_header *hdr; in nfs_generic_pg_pgios() local
958 hdr = nfs_pgio_header_alloc(desc->pg_rw_ops); in nfs_generic_pg_pgios()
959 if (!hdr) { in nfs_generic_pg_pgios()
963 nfs_pgheader_init(desc, hdr, nfs_pgio_header_free); in nfs_generic_pg_pgios()
964 ret = nfs_generic_pgio(desc, hdr); in nfs_generic_pg_pgios()
966 ret = nfs_initiate_pgio(NFS_CLIENT(hdr->inode), in nfs_generic_pg_pgios()
967 hdr, in nfs_generic_pg_pgios()
968 hdr->cred, in nfs_generic_pg_pgios()
969 NFS_PROTO(hdr->inode), in nfs_generic_pg_pgios()
1365 struct nfs_pgio_header *hdr) in nfs_pageio_resend() argument
1369 desc->pg_io_completion = hdr->io_completion; in nfs_pageio_resend()
1370 desc->pg_dreq = hdr->dreq; in nfs_pageio_resend()
1371 list_splice_init(&hdr->pages, &pages); in nfs_pageio_resend()
1381 hdr->completion_ops->error_cleanup(&pages, err); in nfs_pageio_resend()
1382 nfs_set_pgio_error(hdr, err, hdr->io_start); in nfs_pageio_resend()