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 ---