request.c (16217dc79dbc599b110dda26d0421df47904bba4) request.c (491221f88d00651e449c9caf7415b6453c8a77b7)
1/*
2 * Main bcache entry point - handle a read or a write request and decide what to
3 * do with it; the make_request functions are called by the block layer.
4 *
5 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com>
6 * Copyright 2012 Google, Inc.
7 */
8

--- 680 unchanged lines hidden (view full) ---

689
690static void cached_dev_cache_miss_done(struct closure *cl)
691{
692 struct search *s = container_of(cl, struct search, cl);
693
694 if (s->iop.replace_collision)
695 bch_mark_cache_miss_collision(s->iop.c, s->d);
696
1/*
2 * Main bcache entry point - handle a read or a write request and decide what to
3 * do with it; the make_request functions are called by the block layer.
4 *
5 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com>
6 * Copyright 2012 Google, Inc.
7 */
8

--- 680 unchanged lines hidden (view full) ---

689
690static void cached_dev_cache_miss_done(struct closure *cl)
691{
692 struct search *s = container_of(cl, struct search, cl);
693
694 if (s->iop.replace_collision)
695 bch_mark_cache_miss_collision(s->iop.c, s->d);
696
697 if (s->iop.bio) {
698 int i;
699 struct bio_vec *bv;
697 if (s->iop.bio)
698 bio_free_pages(s->iop.bio);
700
699
701 bio_for_each_segment_all(bv, s->iop.bio, i)
702 __free_page(bv->bv_page);
703 }
704
705 cached_dev_bio_complete(cl);
706}
707
708static void cached_dev_read_error(struct closure *cl)
709{
710 struct search *s = container_of(cl, struct search, cl);
711 struct bio *bio = &s->bio.bio;
712

--- 452 unchanged lines hidden ---
700 cached_dev_bio_complete(cl);
701}
702
703static void cached_dev_read_error(struct closure *cl)
704{
705 struct search *s = container_of(cl, struct search, cl);
706 struct bio *bio = &s->bio.bio;
707

--- 452 unchanged lines hidden ---