Merge tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block
Pull block updates from Jens Axboe: - clean up how we pass around gfp_t and blk_mq_req_flags_t (Christoph) - prepare us to defer scheduler attach (Christoph) - clean up drivers handling of bounce buffers (Christoph) - fix timeout handling corner cases (Christoph/Bart/Keith) - bcache fixes (Coly) - prep work for bcachefs and some block layer optimizations (Kent). - convert users of bio_sets to using embedded structs (Kent). - fixes for the BFQ io scheduler (Paolo/Davide/Filippo) - lightnvm fixes and improvements (Matias, with contributions from Hans and Javier) - adding discard throttling to blk-wbt (me) - sbitmap blk-mq-tag handling (me/Omar/Ming). - remove the sparc jsflash block driver, acked by DaveM. - Kyber scheduler improvement from Jianchao, making it more friendly wrt merging. - conversion of symbolic proc permissions to octal, from Joe Perches. Previously the block parts were a mix of both. - nbd fixes (Josef and Kevin Vigor) - unify how we handle the various kinds of timestamps that the block core and utility code uses (Omar) - three NVMe pull requests from Keith and Christoph, bringing AEN to feature completeness, file backed namespaces, cq/sq lock split, and various fixes - various little fixes and improvements all over the map * tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block: (196 commits) blk-mq: update nr_requests when switching to 'none' scheduler block: don't use blocking queue entered for recursive bio submits dm-crypt: fix warning in shutdown path lightnvm: pblk: take bitmap alloc. out of critical section lightnvm: pblk: kick writer on new flush points lightnvm: pblk: only try to recover lines with written smeta lightnvm: pblk: remove unnecessary bio_get/put lightnvm: pblk: add possibility to set write buffer size manually lightnvm: fix partial read error path lightnvm: proper error handling for pblk_bio_add_pages lightnvm: pblk: fix smeta write error path lightnvm: pblk: garbage collect lines with failed writes lightnvm: pblk: rework write error recovery path lightnvm: pblk: remove dead function lightnvm: pass flag on graceful teardown to targets lightnvm: pblk: check for chunk size before allocating it lightnvm: pblk: remove unnecessary argument lightnvm: pblk: remove unnecessary indirection lightnvm: pblk: return NVM_ error on failed submission lightnvm: pblk: warn in case of corrupted write buffer ...
This commit is contained in:
@@ -142,7 +142,7 @@ struct dm_integrity_c {
|
||||
unsigned tag_size;
|
||||
__s8 log2_tag_size;
|
||||
sector_t start;
|
||||
mempool_t *journal_io_mempool;
|
||||
mempool_t journal_io_mempool;
|
||||
struct dm_io_client *io;
|
||||
struct dm_bufio_client *bufio;
|
||||
struct workqueue_struct *metadata_wq;
|
||||
@@ -1817,7 +1817,7 @@ static void complete_copy_from_journal(unsigned long error, void *context)
|
||||
struct journal_completion *comp = io->comp;
|
||||
struct dm_integrity_c *ic = comp->ic;
|
||||
remove_range(ic, &io->range);
|
||||
mempool_free(io, ic->journal_io_mempool);
|
||||
mempool_free(io, &ic->journal_io_mempool);
|
||||
if (unlikely(error != 0))
|
||||
dm_integrity_io_error(ic, "copying from journal", -EIO);
|
||||
complete_journal_op(comp);
|
||||
@@ -1886,7 +1886,7 @@ static void do_journal_write(struct dm_integrity_c *ic, unsigned write_start,
|
||||
}
|
||||
next_loop = k - 1;
|
||||
|
||||
io = mempool_alloc(ic->journal_io_mempool, GFP_NOIO);
|
||||
io = mempool_alloc(&ic->journal_io_mempool, GFP_NOIO);
|
||||
io->comp = ∁
|
||||
io->range.logical_sector = sec;
|
||||
io->range.n_sectors = (k - j) << ic->sb->log2_sectors_per_block;
|
||||
@@ -1918,7 +1918,7 @@ static void do_journal_write(struct dm_integrity_c *ic, unsigned write_start,
|
||||
if (j == k) {
|
||||
remove_range_unlocked(ic, &io->range);
|
||||
spin_unlock_irq(&ic->endio_wait.lock);
|
||||
mempool_free(io, ic->journal_io_mempool);
|
||||
mempool_free(io, &ic->journal_io_mempool);
|
||||
goto skip_io;
|
||||
}
|
||||
for (l = j; l < k; l++) {
|
||||
@@ -2980,9 +2980,8 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned argc, char **argv)
|
||||
goto bad;
|
||||
}
|
||||
|
||||
ic->journal_io_mempool = mempool_create_slab_pool(JOURNAL_IO_MEMPOOL, journal_io_cache);
|
||||
if (!ic->journal_io_mempool) {
|
||||
r = -ENOMEM;
|
||||
r = mempool_init_slab_pool(&ic->journal_io_mempool, JOURNAL_IO_MEMPOOL, journal_io_cache);
|
||||
if (r) {
|
||||
ti->error = "Cannot allocate mempool";
|
||||
goto bad;
|
||||
}
|
||||
@@ -3196,7 +3195,7 @@ static void dm_integrity_dtr(struct dm_target *ti)
|
||||
destroy_workqueue(ic->writer_wq);
|
||||
if (ic->bufio)
|
||||
dm_bufio_client_destroy(ic->bufio);
|
||||
mempool_destroy(ic->journal_io_mempool);
|
||||
mempool_exit(&ic->journal_io_mempool);
|
||||
if (ic->io)
|
||||
dm_io_client_destroy(ic->io);
|
||||
if (ic->dev)
|
||||
|
Reference in New Issue
Block a user