Loading drivers/md/bcache/closure.h +0 −3 Original line number Diff line number Diff line Loading @@ -320,7 +320,6 @@ static inline void closure_wake_up(struct closure_waitlist *list) do { \ set_closure_fn(_cl, _fn, _wq); \ closure_sub(_cl, CLOSURE_RUNNING + 1); \ return; \ } while (0) /** Loading Loading @@ -349,7 +348,6 @@ do { \ do { \ set_closure_fn(_cl, _fn, _wq); \ closure_queue(_cl); \ return; \ } while (0) /** Loading @@ -365,7 +363,6 @@ do { \ do { \ set_closure_fn(_cl, _destructor, NULL); \ closure_sub(_cl, CLOSURE_RUNNING - CLOSURE_DESTRUCTOR + 1); \ return; \ } while (0) /** Loading drivers/md/bcache/io.c +1 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ void bch_generic_make_request(struct bio *bio, struct bio_split_pool *p) } while (n != bio); continue_at(&s->cl, bch_bio_submit_split_done, NULL); return; submit: generic_make_request(bio); } Loading drivers/md/bcache/journal.c +2 −0 Original line number Diff line number Diff line Loading @@ -592,12 +592,14 @@ static void journal_write_unlocked(struct closure *cl) if (!w->need_write) { closure_return_with_destructor(cl, journal_write_unlock); return; } else if (journal_full(&c->journal)) { journal_reclaim(c); spin_unlock(&c->journal.lock); btree_flush_write(c); continue_at(cl, journal_write, system_wq); return; } c->journal.blocks_free -= set_blocks(w->data, block_bytes(c)); Loading drivers/md/bcache/request.c +11 −3 Original line number Diff line number Diff line Loading @@ -88,8 +88,10 @@ static void bch_data_insert_keys(struct closure *cl) if (journal_ref) atomic_dec_bug(journal_ref); if (!op->insert_data_done) if (!op->insert_data_done) { continue_at(cl, bch_data_insert_start, op->wq); return; } bch_keylist_free(&op->insert_keys); closure_return(cl); Loading Loading @@ -216,8 +218,10 @@ static void bch_data_insert_start(struct closure *cl) /* 1 for the device pointer and 1 for the chksum */ if (bch_keylist_realloc(&op->insert_keys, 3 + (op->csum ? 1 : 0), op->c)) op->c)) { continue_at(cl, bch_data_insert_keys, op->wq); return; } k = op->insert_keys.top; bkey_init(k); Loading Loading @@ -255,6 +259,7 @@ static void bch_data_insert_start(struct closure *cl) op->insert_data_done = true; continue_at(cl, bch_data_insert_keys, op->wq); return; err: /* bch_alloc_sectors() blocks if s->writeback = true */ BUG_ON(op->writeback); Loading Loading @@ -576,8 +581,10 @@ static void cache_lookup(struct closure *cl) ret = bch_btree_map_keys(&s->op, s->iop.c, &KEY(s->iop.inode, bio->bi_iter.bi_sector, 0), cache_lookup_fn, MAP_END_KEY); if (ret == -EAGAIN) if (ret == -EAGAIN) { continue_at(cl, cache_lookup, bcache_wq); return; } closure_return(cl); } Loading Loading @@ -1085,6 +1092,7 @@ static void flash_dev_make_request(struct request_queue *q, struct bio *bio) continue_at_nobarrier(&s->cl, flash_dev_nodata, bcache_wq); return; } else if (rw) { bch_keybuf_check_overlapping(&s->iop.c->moving_gc_keys, &KEY(d->id, bio->bi_iter.bi_sector, 0), Loading Loading
drivers/md/bcache/closure.h +0 −3 Original line number Diff line number Diff line Loading @@ -320,7 +320,6 @@ static inline void closure_wake_up(struct closure_waitlist *list) do { \ set_closure_fn(_cl, _fn, _wq); \ closure_sub(_cl, CLOSURE_RUNNING + 1); \ return; \ } while (0) /** Loading Loading @@ -349,7 +348,6 @@ do { \ do { \ set_closure_fn(_cl, _fn, _wq); \ closure_queue(_cl); \ return; \ } while (0) /** Loading @@ -365,7 +363,6 @@ do { \ do { \ set_closure_fn(_cl, _destructor, NULL); \ closure_sub(_cl, CLOSURE_RUNNING - CLOSURE_DESTRUCTOR + 1); \ return; \ } while (0) /** Loading
drivers/md/bcache/io.c +1 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ void bch_generic_make_request(struct bio *bio, struct bio_split_pool *p) } while (n != bio); continue_at(&s->cl, bch_bio_submit_split_done, NULL); return; submit: generic_make_request(bio); } Loading
drivers/md/bcache/journal.c +2 −0 Original line number Diff line number Diff line Loading @@ -592,12 +592,14 @@ static void journal_write_unlocked(struct closure *cl) if (!w->need_write) { closure_return_with_destructor(cl, journal_write_unlock); return; } else if (journal_full(&c->journal)) { journal_reclaim(c); spin_unlock(&c->journal.lock); btree_flush_write(c); continue_at(cl, journal_write, system_wq); return; } c->journal.blocks_free -= set_blocks(w->data, block_bytes(c)); Loading
drivers/md/bcache/request.c +11 −3 Original line number Diff line number Diff line Loading @@ -88,8 +88,10 @@ static void bch_data_insert_keys(struct closure *cl) if (journal_ref) atomic_dec_bug(journal_ref); if (!op->insert_data_done) if (!op->insert_data_done) { continue_at(cl, bch_data_insert_start, op->wq); return; } bch_keylist_free(&op->insert_keys); closure_return(cl); Loading Loading @@ -216,8 +218,10 @@ static void bch_data_insert_start(struct closure *cl) /* 1 for the device pointer and 1 for the chksum */ if (bch_keylist_realloc(&op->insert_keys, 3 + (op->csum ? 1 : 0), op->c)) op->c)) { continue_at(cl, bch_data_insert_keys, op->wq); return; } k = op->insert_keys.top; bkey_init(k); Loading Loading @@ -255,6 +259,7 @@ static void bch_data_insert_start(struct closure *cl) op->insert_data_done = true; continue_at(cl, bch_data_insert_keys, op->wq); return; err: /* bch_alloc_sectors() blocks if s->writeback = true */ BUG_ON(op->writeback); Loading Loading @@ -576,8 +581,10 @@ static void cache_lookup(struct closure *cl) ret = bch_btree_map_keys(&s->op, s->iop.c, &KEY(s->iop.inode, bio->bi_iter.bi_sector, 0), cache_lookup_fn, MAP_END_KEY); if (ret == -EAGAIN) if (ret == -EAGAIN) { continue_at(cl, cache_lookup, bcache_wq); return; } closure_return(cl); } Loading Loading @@ -1085,6 +1092,7 @@ static void flash_dev_make_request(struct request_queue *q, struct bio *bio) continue_at_nobarrier(&s->cl, flash_dev_nodata, bcache_wq); return; } else if (rw) { bch_keybuf_check_overlapping(&s->iop.c->moving_gc_keys, &KEY(d->id, bio->bi_iter.bi_sector, 0), Loading