@@ -51,31 +51,6 @@ struct nfs_rw_header *nfs_readhdr_alloc(void)
5151}
5252EXPORT_SYMBOL_GPL (nfs_readhdr_alloc );
5353
54- static struct nfs_pgio_data * nfs_readdata_alloc (struct nfs_pgio_header * hdr ,
55- unsigned int pagecount )
56- {
57- struct nfs_pgio_data * data , * prealloc ;
58-
59- prealloc = & container_of (hdr , struct nfs_rw_header , header )-> rpc_data ;
60- if (prealloc -> header == NULL )
61- data = prealloc ;
62- else
63- data = kzalloc (sizeof (* data ), GFP_KERNEL );
64- if (!data )
65- goto out ;
66-
67- if (nfs_pgarray_set (& data -> pages , pagecount )) {
68- data -> header = hdr ;
69- atomic_inc (& hdr -> refcnt );
70- } else {
71- if (data != prealloc )
72- kfree (data );
73- data = NULL ;
74- }
75- out :
76- return data ;
77- }
78-
7954void nfs_readhdr_free (struct nfs_pgio_header * hdr )
8055{
8156 struct nfs_rw_header * rhdr = container_of (hdr , struct nfs_rw_header , header );
@@ -84,27 +59,6 @@ void nfs_readhdr_free(struct nfs_pgio_header *hdr)
8459}
8560EXPORT_SYMBOL_GPL (nfs_readhdr_free );
8661
87- void nfs_readdata_release (struct nfs_pgio_data * rdata )
88- {
89- struct nfs_pgio_header * hdr = rdata -> header ;
90- struct nfs_rw_header * read_header = container_of (hdr , struct nfs_rw_header , header );
91-
92- put_nfs_open_context (rdata -> args .context );
93- if (rdata -> pages .pagevec != rdata -> pages .page_array )
94- kfree (rdata -> pages .pagevec );
95- if (rdata == & read_header -> rpc_data ) {
96- rdata -> header = NULL ;
97- rdata = NULL ;
98- }
99- if (atomic_dec_and_test (& hdr -> refcnt ))
100- hdr -> completion_ops -> completion (hdr );
101- /* Note: we only free the rpc_task after callbacks are done.
102- * See the comment in rpc_free_task() for why
103- */
104- kfree (rdata );
105- }
106- EXPORT_SYMBOL_GPL (nfs_readdata_release );
107-
10862static
10963int nfs_return_empty_page (struct page * page )
11064{
@@ -327,7 +281,7 @@ static void nfs_pagein_error(struct nfs_pageio_descriptor *desc,
327281 struct nfs_pgio_data * data = list_first_entry (& hdr -> rpc_list ,
328282 struct nfs_pgio_data , list );
329283 list_del (& data -> list );
330- nfs_readdata_release (data );
284+ nfs_pgio_data_release (data );
331285 }
332286 desc -> pg_completion_ops -> error_cleanup (& desc -> pg_list );
333287}
@@ -359,7 +313,7 @@ static int nfs_pagein_multi(struct nfs_pageio_descriptor *desc,
359313 do {
360314 size_t len = min (nbytes ,rsize );
361315
362- data = nfs_readdata_alloc (hdr , 1 );
316+ data = nfs_pgio_data_alloc (hdr , 1 );
363317 if (!data ) {
364318 nfs_pagein_error (desc , hdr );
365319 return - ENOMEM ;
@@ -385,7 +339,7 @@ static int nfs_pagein_one(struct nfs_pageio_descriptor *desc,
385339 struct nfs_pgio_data * data ;
386340 struct list_head * head = & desc -> pg_list ;
387341
388- data = nfs_readdata_alloc (hdr , nfs_page_array_len (desc -> pg_base ,
342+ data = nfs_pgio_data_alloc (hdr , nfs_page_array_len (desc -> pg_base ,
389343 desc -> pg_count ));
390344 if (!data ) {
391345 nfs_pagein_error (desc , hdr );
@@ -515,7 +469,7 @@ static void nfs_readpage_result_common(struct rpc_task *task, void *calldata)
515469
516470static void nfs_readpage_release_common (void * calldata )
517471{
518- nfs_readdata_release (calldata );
472+ nfs_pgio_data_release (calldata );
519473}
520474
521475void nfs_read_prepare (struct rpc_task * task , void * calldata )
0 commit comments