Lines Matching refs:pcache_req
91 struct pcache_request *pcache_req, u32 bio_off) in cache_copy_from_req_bio() argument
98 return segment_copy_from_bio(segment, pos->seg_off, key->len, pcache_req->bio, bio_off); in cache_copy_from_req_bio()
101 static int cache_copy_to_req_bio(struct pcache_cache *cache, struct pcache_request *pcache_req, in cache_copy_to_req_bio() argument
114 ret = segment_copy_to_bio(segment, pos->seg_off, len, pcache_req->bio, bio_off); in cache_copy_to_req_bio()
136 struct pcache_request *pcache_req = backing_req->req.upper_req; in miss_read_end_req() local
165 ret = cache_copy_from_req_bio(cache, key, pcache_req, backing_req->req.bio_off); in miss_read_end_req()
291 struct pcache_request *pcache_req = ctx->pcache_req; in get_pre_alloc_req() local
301 return cache_miss_req_alloc(cache, pcache_req, GFP_NOWAIT); in get_pre_alloc_req()
342 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, true); in read_before()
376 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, true); in read_overlap_tail()
393 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false); in read_overlap_tail()
396 ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done, in read_overlap_tail()
437 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, true); in read_overlap_contain()
454 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false); in read_overlap_contain()
457 ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done, in read_overlap_contain()
501 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, false); in read_overlap_contained()
507 ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done, in read_overlap_contained()
546 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, io_len, false); in read_overlap_head()
552 ret = cache_copy_to_req_bio(ctx->cache_tree->cache, ctx->pcache_req, ctx->req_done, in read_overlap_head()
614 cache_miss_req_init(cache, backing_req, ctx->pcache_req, ctx->req_done, key->len, true); in read_walk_finally()
634 return (ctx->req_done >= ctx->pcache_req->data_len); in read_walk_done()
662 static int cache_read(struct pcache_cache *cache, struct pcache_request *pcache_req) in cache_read() argument
664 struct pcache_cache_key key_data = { .off = pcache_req->off, .len = pcache_req->data_len }; in cache_read()
677 walk_ctx.pcache_req = pcache_req; in cache_read()
689 key->off = pcache_req->off + walk_ctx.req_done; in cache_read()
690 key->len = pcache_req->data_len - walk_ctx.req_done; in cache_read()
720 walk_ctx.pre_alloc_req = cache_miss_req_alloc(cache, pcache_req, GFP_NOIO); in cache_read()
724 if (walk_ctx.req_done < pcache_req->data_len) in cache_read()
739 static int cache_write(struct pcache_cache *cache, struct pcache_request *pcache_req) in cache_write() argument
743 u64 offset = pcache_req->off; in cache_write()
744 u32 length = pcache_req->data_len; in cache_write()
764 ret = cache_copy_from_req_bio(cache, key, pcache_req, io_done); in cache_write()
774 ret = cache_key_append(cache, key, pcache_req->bio->bi_opf & REQ_FUA); in cache_write()
825 int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *pcache_req) in pcache_cache_handle_req() argument
827 struct bio *bio = pcache_req->bio; in pcache_cache_handle_req()
833 return cache_read(cache, pcache_req); in pcache_cache_handle_req()
835 return cache_write(cache, pcache_req); in pcache_cache_handle_req()