Lines Matching refs:req
189 void afs_put_read(struct afs_read *req) in afs_put_read() argument
193 if (refcount_dec_and_test(&req->usage)) { in afs_put_read()
194 if (req->pages) { in afs_put_read()
195 for (i = 0; i < req->nr_pages; i++) in afs_put_read()
196 if (req->pages[i]) in afs_put_read()
197 put_page(req->pages[i]); in afs_put_read()
198 if (req->pages != req->array) in afs_put_read()
199 kfree(req->pages); in afs_put_read()
201 kfree(req); in afs_put_read()
276 struct afs_read *req; in afs_page_filler() local
315 req = kzalloc(struct_size(req, array, 1), GFP_KERNEL); in afs_page_filler()
316 if (!req) in afs_page_filler()
323 refcount_set(&req->usage, 1); in afs_page_filler()
324 req->pos = (loff_t)page->index << PAGE_SHIFT; in afs_page_filler()
325 req->len = PAGE_SIZE; in afs_page_filler()
326 req->nr_pages = 1; in afs_page_filler()
327 req->pages = req->array; in afs_page_filler()
328 req->pages[0] = page; in afs_page_filler()
333 ret = afs_fetch_data(vnode, key, req); in afs_page_filler()
334 afs_put_read(req); in afs_page_filler()
414 static void afs_readpages_page_done(struct afs_read *req) in afs_readpages_page_done() argument
417 struct afs_vnode *vnode = req->vnode; in afs_readpages_page_done()
419 struct page *page = req->pages[req->index]; in afs_readpages_page_done()
421 req->pages[req->index] = NULL; in afs_readpages_page_done()
444 struct afs_read *req; in afs_readpages_one() local
465 req = kzalloc(struct_size(req, array, n), GFP_NOFS); in afs_readpages_one()
466 if (!req) in afs_readpages_one()
469 refcount_set(&req->usage, 1); in afs_readpages_one()
470 req->vnode = vnode; in afs_readpages_one()
471 req->page_done = afs_readpages_page_done; in afs_readpages_one()
472 req->pos = first->index; in afs_readpages_one()
473 req->pos <<= PAGE_SHIFT; in afs_readpages_one()
474 req->pages = req->array; in afs_readpages_one()
498 req->pages[req->nr_pages++] = page; in afs_readpages_one()
499 req->len += PAGE_SIZE; in afs_readpages_one()
500 } while (req->nr_pages < n); in afs_readpages_one()
502 if (req->nr_pages == 0) { in afs_readpages_one()
503 kfree(req); in afs_readpages_one()
507 ret = afs_fetch_data(vnode, key, req); in afs_readpages_one()
511 task_io_account_read(PAGE_SIZE * req->nr_pages); in afs_readpages_one()
512 afs_put_read(req); in afs_readpages_one()
523 for (i = 0; i < req->nr_pages; i++) { in afs_readpages_one()
524 page = req->pages[i]; in afs_readpages_one()
534 afs_put_read(req); in afs_readpages_one()