request.c (a4654e9bde4ecedb4921e6c8fe2088114bdff1b3) | request.c (ff27668ce8092c74965f21b5c02ebc6b6764db95) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Main bcache entry point - handle a read or a write request and decide what to 4 * do with it; the make_request functions are called by the block layer. 5 * 6 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 7 * Copyright 2012 Google, Inc. 8 */ --- 1147 unchanged lines hidden (view full) --- 1156 } 1157 mutex_unlock(&bch_register_lock); 1158 } else 1159 atomic_long_set(&this_dc->writeback_rate.rate, 1); 1160} 1161 1162/* Cached devices - read & write stuff */ 1163 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Main bcache entry point - handle a read or a write request and decide what to 4 * do with it; the make_request functions are called by the block layer. 5 * 6 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 7 * Copyright 2012 Google, Inc. 8 */ --- 1147 unchanged lines hidden (view full) --- 1156 } 1157 mutex_unlock(&bch_register_lock); 1158 } else 1159 atomic_long_set(&this_dc->writeback_rate.rate, 1); 1160} 1161 1162/* Cached devices - read & write stuff */ 1163 |
1164static blk_qc_t cached_dev_make_request(struct request_queue *q, 1165 struct bio *bio) | 1164blk_qc_t cached_dev_make_request(struct request_queue *q, struct bio *bio) |
1166{ 1167 struct search *s; 1168 struct bcache_device *d = bio->bi_disk->private_data; 1169 struct cached_dev *dc = container_of(d, struct cached_dev, disk); 1170 int rw = bio_data_dir(bio); 1171 1172 if (unlikely((d->c && test_bit(CACHE_SET_IO_DISABLE, &d->c->flags)) || 1173 dc->io_disable)) { --- 87 unchanged lines hidden (view full) --- 1261 1262 return ret; 1263} 1264 1265void bch_cached_dev_request_init(struct cached_dev *dc) 1266{ 1267 struct gendisk *g = dc->disk.disk; 1268 | 1165{ 1166 struct search *s; 1167 struct bcache_device *d = bio->bi_disk->private_data; 1168 struct cached_dev *dc = container_of(d, struct cached_dev, disk); 1169 int rw = bio_data_dir(bio); 1170 1171 if (unlikely((d->c && test_bit(CACHE_SET_IO_DISABLE, &d->c->flags)) || 1172 dc->io_disable)) { --- 87 unchanged lines hidden (view full) --- 1260 1261 return ret; 1262} 1263 1264void bch_cached_dev_request_init(struct cached_dev *dc) 1265{ 1266 struct gendisk *g = dc->disk.disk; 1267 |
1269 g->queue->make_request_fn = cached_dev_make_request; | |
1270 g->queue->backing_dev_info->congested_fn = cached_dev_congested; 1271 dc->disk.cache_miss = cached_dev_cache_miss; 1272 dc->disk.ioctl = cached_dev_ioctl; 1273} 1274 1275/* Flash backed devices */ 1276 1277static int flash_dev_cache_miss(struct btree *b, struct search *s, --- 18 unchanged lines hidden (view full) --- 1296 struct search *s = container_of(cl, struct search, cl); 1297 1298 if (s->iop.flush_journal) 1299 bch_journal_meta(s->iop.c, cl); 1300 1301 continue_at(cl, search_free, NULL); 1302} 1303 | 1268 g->queue->backing_dev_info->congested_fn = cached_dev_congested; 1269 dc->disk.cache_miss = cached_dev_cache_miss; 1270 dc->disk.ioctl = cached_dev_ioctl; 1271} 1272 1273/* Flash backed devices */ 1274 1275static int flash_dev_cache_miss(struct btree *b, struct search *s, --- 18 unchanged lines hidden (view full) --- 1294 struct search *s = container_of(cl, struct search, cl); 1295 1296 if (s->iop.flush_journal) 1297 bch_journal_meta(s->iop.c, cl); 1298 1299 continue_at(cl, search_free, NULL); 1300} 1301 |
1304static blk_qc_t flash_dev_make_request(struct request_queue *q, 1305 struct bio *bio) | 1302blk_qc_t flash_dev_make_request(struct request_queue *q, struct bio *bio) |
1306{ 1307 struct search *s; 1308 struct closure *cl; 1309 struct bcache_device *d = bio->bi_disk->private_data; 1310 1311 if (unlikely(d->c && test_bit(CACHE_SET_IO_DISABLE, &d->c->flags))) { 1312 bio->bi_status = BLK_STS_IOERR; 1313 bio_endio(bio); --- 83 unchanged lines hidden --- | 1303{ 1304 struct search *s; 1305 struct closure *cl; 1306 struct bcache_device *d = bio->bi_disk->private_data; 1307 1308 if (unlikely(d->c && test_bit(CACHE_SET_IO_DISABLE, &d->c->flags))) { 1309 bio->bi_status = BLK_STS_IOERR; 1310 bio_endio(bio); --- 83 unchanged lines hidden --- |