super.c (a4654e9bde4ecedb4921e6c8fe2088114bdff1b3) | super.c (ff27668ce8092c74965f21b5c02ebc6b6764db95) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * bcache setup/teardown code, and some metadata io - read a superblock and 4 * figure out what to do with it. 5 * 6 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 7 * Copyright 2012 Google, Inc. 8 */ --- 802 unchanged lines hidden (view full) --- 811 bioset_exit(&d->bio_split); 812 kvfree(d->full_dirty_stripes); 813 kvfree(d->stripe_sectors_dirty); 814 815 closure_debug_destroy(&d->cl); 816} 817 818static int bcache_device_init(struct bcache_device *d, unsigned int block_size, | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * bcache setup/teardown code, and some metadata io - read a superblock and 4 * figure out what to do with it. 5 * 6 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 7 * Copyright 2012 Google, Inc. 8 */ --- 802 unchanged lines hidden (view full) --- 811 bioset_exit(&d->bio_split); 812 kvfree(d->full_dirty_stripes); 813 kvfree(d->stripe_sectors_dirty); 814 815 closure_debug_destroy(&d->cl); 816} 817 818static int bcache_device_init(struct bcache_device *d, unsigned int block_size, |
819 sector_t sectors) | 819 sector_t sectors, make_request_fn make_request_fn) |
820{ 821 struct request_queue *q; 822 const size_t max_stripes = min_t(size_t, INT_MAX, 823 SIZE_MAX / sizeof(atomic_t)); 824 size_t n; 825 int idx; 826 827 if (!d->stripe_size) --- 37 unchanged lines hidden (view full) --- 865 d->disk->first_minor = idx_to_first_minor(idx); 866 d->disk->fops = &bcache_ops; 867 d->disk->private_data = d; 868 869 q = blk_alloc_queue(GFP_KERNEL); 870 if (!q) 871 return -ENOMEM; 872 | 820{ 821 struct request_queue *q; 822 const size_t max_stripes = min_t(size_t, INT_MAX, 823 SIZE_MAX / sizeof(atomic_t)); 824 size_t n; 825 int idx; 826 827 if (!d->stripe_size) --- 37 unchanged lines hidden (view full) --- 865 d->disk->first_minor = idx_to_first_minor(idx); 866 d->disk->fops = &bcache_ops; 867 d->disk->private_data = d; 868 869 q = blk_alloc_queue(GFP_KERNEL); 870 if (!q) 871 return -ENOMEM; 872 |
873 blk_queue_make_request(q, NULL); | 873 blk_queue_make_request(q, make_request_fn); |
874 d->disk->queue = q; 875 q->queuedata = d; 876 q->backing_dev_info->congested_data = d; 877 q->limits.max_hw_sectors = UINT_MAX; 878 q->limits.max_sectors = UINT_MAX; 879 q->limits.max_segment_size = UINT_MAX; 880 q->limits.max_segments = BIO_MAX_PAGES; 881 blk_queue_max_discard_sectors(q, UINT_MAX); --- 452 unchanged lines hidden (view full) --- 1334 1335 dc->disk.stripe_size = q->limits.io_opt >> 9; 1336 1337 if (dc->disk.stripe_size) 1338 dc->partial_stripes_expensive = 1339 q->limits.raid_partial_stripes_expensive; 1340 1341 ret = bcache_device_init(&dc->disk, block_size, | 874 d->disk->queue = q; 875 q->queuedata = d; 876 q->backing_dev_info->congested_data = d; 877 q->limits.max_hw_sectors = UINT_MAX; 878 q->limits.max_sectors = UINT_MAX; 879 q->limits.max_segment_size = UINT_MAX; 880 q->limits.max_segments = BIO_MAX_PAGES; 881 blk_queue_max_discard_sectors(q, UINT_MAX); --- 452 unchanged lines hidden (view full) --- 1334 1335 dc->disk.stripe_size = q->limits.io_opt >> 9; 1336 1337 if (dc->disk.stripe_size) 1338 dc->partial_stripes_expensive = 1339 q->limits.raid_partial_stripes_expensive; 1340 1341 ret = bcache_device_init(&dc->disk, block_size, |
1342 dc->bdev->bd_part->nr_sects - dc->sb.data_offset); | 1342 dc->bdev->bd_part->nr_sects - dc->sb.data_offset, 1343 cached_dev_make_request); |
1343 if (ret) 1344 return ret; 1345 1346 dc->disk.disk->queue->backing_dev_info->ra_pages = 1347 max(dc->disk.disk->queue->backing_dev_info->ra_pages, 1348 q->backing_dev_info->ra_pages); 1349 1350 atomic_set(&dc->io_errors, 0); --- 95 unchanged lines hidden (view full) --- 1446 if (!d) 1447 return -ENOMEM; 1448 1449 closure_init(&d->cl, NULL); 1450 set_closure_fn(&d->cl, flash_dev_flush, system_wq); 1451 1452 kobject_init(&d->kobj, &bch_flash_dev_ktype); 1453 | 1344 if (ret) 1345 return ret; 1346 1347 dc->disk.disk->queue->backing_dev_info->ra_pages = 1348 max(dc->disk.disk->queue->backing_dev_info->ra_pages, 1349 q->backing_dev_info->ra_pages); 1350 1351 atomic_set(&dc->io_errors, 0); --- 95 unchanged lines hidden (view full) --- 1447 if (!d) 1448 return -ENOMEM; 1449 1450 closure_init(&d->cl, NULL); 1451 set_closure_fn(&d->cl, flash_dev_flush, system_wq); 1452 1453 kobject_init(&d->kobj, &bch_flash_dev_ktype); 1454 |
1454 if (bcache_device_init(d, block_bytes(c), u->sectors)) | 1455 if (bcache_device_init(d, block_bytes(c), u->sectors, 1456 flash_dev_make_request)) |
1455 goto err; 1456 1457 bcache_device_attach(d, c, u - c->uuids); 1458 bch_sectors_dirty_init(d); 1459 bch_flash_dev_request_init(d); 1460 add_disk(d->disk); 1461 1462 if (kobject_add(&d->kobj, &disk_to_dev(d->disk)->kobj, "bcache")) --- 1260 unchanged lines hidden --- | 1457 goto err; 1458 1459 bcache_device_attach(d, c, u - c->uuids); 1460 bch_sectors_dirty_init(d); 1461 bch_flash_dev_request_init(d); 1462 add_disk(d->disk); 1463 1464 if (kobject_add(&d->kobj, &disk_to_dev(d->disk)->kobj, "bcache")) --- 1260 unchanged lines hidden --- |