• Home
  • Raw
  • Download

Lines Matching refs:req

236 static void finish_read(struct ceph_osd_request *req, struct ceph_msg *msg)  in finish_read()  argument
238 struct inode *inode = req->r_inode; in finish_read()
249 dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes); in finish_read()
252 for (i = 0; i < req->r_num_pages; i++, bytes -= PAGE_CACHE_SIZE) { in finish_read()
253 struct page *page = req->r_pages[i]; in finish_read()
267 kfree(req->r_pages); in finish_read()
288 struct ceph_osd_request *req; in start_read() local
313 req = ceph_osdc_new_request(osdc, &ci->i_layout, ceph_vino(inode), in start_read()
319 if (IS_ERR(req)) in start_read()
320 return PTR_ERR(req); in start_read()
345 req->r_pages = pages; in start_read()
346 req->r_num_pages = nr_pages; in start_read()
347 req->r_callback = finish_read; in start_read()
348 req->r_inode = inode; in start_read()
350 dout("start_read %p starting %p %lld~%lld\n", inode, req, off, len); in start_read()
351 ret = ceph_osdc_start_request(osdc, req, false); in start_read()
354 ceph_osdc_put_request(req); in start_read()
361 ceph_osdc_put_request(req); in start_read()
553 static void writepages_finish(struct ceph_osd_request *req, in writepages_finish() argument
556 struct inode *inode = req->r_inode; in writepages_finish()
563 struct ceph_snap_context *snapc = req->r_snapc; in writepages_finish()
585 wrote = req->r_num_pages; in writepages_finish()
594 for (i = 0; i < req->r_num_pages; i++) { in writepages_finish()
595 page = req->r_pages[i]; in writepages_finish()
624 ceph_put_wrbuffer_cap_refs(ci, req->r_num_pages, snapc); in writepages_finish()
626 ceph_release_pages(req->r_pages, req->r_num_pages); in writepages_finish()
627 if (req->r_pages_from_pool) in writepages_finish()
628 mempool_free(req->r_pages, in writepages_finish()
631 kfree(req->r_pages); in writepages_finish()
632 ceph_osdc_put_request(req); in writepages_finish()
641 struct ceph_osd_request *req) in alloc_page_vec() argument
643 req->r_pages = kmalloc(sizeof(struct page *) * req->r_num_pages, in alloc_page_vec()
645 if (!req->r_pages) { in alloc_page_vec()
646 req->r_pages = mempool_alloc(fsc->wb_pagevec_pool, GFP_NOFS); in alloc_page_vec()
647 req->r_pages_from_pool = 1; in alloc_page_vec()
648 WARN_ON(!req->r_pages); in alloc_page_vec()
670 struct ceph_osd_request *req = NULL; in ceph_writepages_start() local
831 req = ceph_osdc_new_request(&fsc->client->osdc, in ceph_writepages_start()
843 if (IS_ERR(req)) { in ceph_writepages_start()
844 rc = PTR_ERR(req); in ceph_writepages_start()
849 max_pages = req->r_num_pages; in ceph_writepages_start()
851 alloc_page_vec(fsc, req); in ceph_writepages_start()
852 req->r_callback = writepages_finish; in ceph_writepages_start()
853 req->r_inode = inode; in ceph_writepages_start()
871 req->r_pages[locked_pages] = page; in ceph_writepages_start()
901 offset = req->r_pages[0]->index << PAGE_CACHE_SHIFT; in ceph_writepages_start()
908 req->r_num_pages = locked_pages; in ceph_writepages_start()
909 reqhead = req->r_request->front.iov_base; in ceph_writepages_start()
913 req->r_request->hdr.data_len = cpu_to_le32(len); in ceph_writepages_start()
915 rc = ceph_osdc_start_request(&fsc->client->osdc, req, true); in ceph_writepages_start()
917 req = NULL; in ceph_writepages_start()
946 if (req) in ceph_writepages_start()
947 ceph_osdc_put_request(req); in ceph_writepages_start()