diff options
| author | David S. Miller <davem@davemloft.net> | 2015-07-23 03:41:16 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-07-23 03:41:16 -0400 |
| commit | c5e40ee287db61a79af1746954ee03ebbf1ff8a3 (patch) | |
| tree | 007da00e75e9b84766ac4868421705300e1e2e14 /drivers/md/bcache/request.c | |
| parent | 052831879945be0d9fad2216b127147c565ec1b1 (diff) | |
| parent | c5dfd654d0ec0a28fe81e7bd4d4fd984a9855e09 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/bridge/br_mdb.c
br_mdb.c conflict was a function call being removed to fix a bug in
'net' but whose signature was changed in 'net-next'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/md/bcache/request.c')
| -rw-r--r-- | drivers/md/bcache/request.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c index 4afb2d26b148..f292790997d7 100644 --- a/drivers/md/bcache/request.c +++ b/drivers/md/bcache/request.c | |||
| @@ -88,8 +88,10 @@ static void bch_data_insert_keys(struct closure *cl) | |||
| 88 | if (journal_ref) | 88 | if (journal_ref) |
| 89 | atomic_dec_bug(journal_ref); | 89 | atomic_dec_bug(journal_ref); |
| 90 | 90 | ||
| 91 | if (!op->insert_data_done) | 91 | if (!op->insert_data_done) { |
| 92 | continue_at(cl, bch_data_insert_start, op->wq); | 92 | continue_at(cl, bch_data_insert_start, op->wq); |
| 93 | return; | ||
| 94 | } | ||
| 93 | 95 | ||
| 94 | bch_keylist_free(&op->insert_keys); | 96 | bch_keylist_free(&op->insert_keys); |
| 95 | closure_return(cl); | 97 | closure_return(cl); |
| @@ -216,8 +218,10 @@ static void bch_data_insert_start(struct closure *cl) | |||
| 216 | /* 1 for the device pointer and 1 for the chksum */ | 218 | /* 1 for the device pointer and 1 for the chksum */ |
| 217 | if (bch_keylist_realloc(&op->insert_keys, | 219 | if (bch_keylist_realloc(&op->insert_keys, |
| 218 | 3 + (op->csum ? 1 : 0), | 220 | 3 + (op->csum ? 1 : 0), |
| 219 | op->c)) | 221 | op->c)) { |
| 220 | continue_at(cl, bch_data_insert_keys, op->wq); | 222 | continue_at(cl, bch_data_insert_keys, op->wq); |
| 223 | return; | ||
| 224 | } | ||
| 221 | 225 | ||
| 222 | k = op->insert_keys.top; | 226 | k = op->insert_keys.top; |
| 223 | bkey_init(k); | 227 | bkey_init(k); |
| @@ -255,6 +259,7 @@ static void bch_data_insert_start(struct closure *cl) | |||
| 255 | 259 | ||
| 256 | op->insert_data_done = true; | 260 | op->insert_data_done = true; |
| 257 | continue_at(cl, bch_data_insert_keys, op->wq); | 261 | continue_at(cl, bch_data_insert_keys, op->wq); |
| 262 | return; | ||
| 258 | err: | 263 | err: |
| 259 | /* bch_alloc_sectors() blocks if s->writeback = true */ | 264 | /* bch_alloc_sectors() blocks if s->writeback = true */ |
| 260 | BUG_ON(op->writeback); | 265 | BUG_ON(op->writeback); |
| @@ -576,8 +581,10 @@ static void cache_lookup(struct closure *cl) | |||
| 576 | ret = bch_btree_map_keys(&s->op, s->iop.c, | 581 | ret = bch_btree_map_keys(&s->op, s->iop.c, |
| 577 | &KEY(s->iop.inode, bio->bi_iter.bi_sector, 0), | 582 | &KEY(s->iop.inode, bio->bi_iter.bi_sector, 0), |
| 578 | cache_lookup_fn, MAP_END_KEY); | 583 | cache_lookup_fn, MAP_END_KEY); |
| 579 | if (ret == -EAGAIN) | 584 | if (ret == -EAGAIN) { |
| 580 | continue_at(cl, cache_lookup, bcache_wq); | 585 | continue_at(cl, cache_lookup, bcache_wq); |
| 586 | return; | ||
| 587 | } | ||
| 581 | 588 | ||
| 582 | closure_return(cl); | 589 | closure_return(cl); |
| 583 | } | 590 | } |
| @@ -1085,6 +1092,7 @@ static void flash_dev_make_request(struct request_queue *q, struct bio *bio) | |||
| 1085 | continue_at_nobarrier(&s->cl, | 1092 | continue_at_nobarrier(&s->cl, |
| 1086 | flash_dev_nodata, | 1093 | flash_dev_nodata, |
| 1087 | bcache_wq); | 1094 | bcache_wq); |
| 1095 | return; | ||
| 1088 | } else if (rw) { | 1096 | } else if (rw) { |
| 1089 | bch_keybuf_check_overlapping(&s->iop.c->moving_gc_keys, | 1097 | bch_keybuf_check_overlapping(&s->iop.c->moving_gc_keys, |
| 1090 | &KEY(d->id, bio->bi_iter.bi_sector, 0), | 1098 | &KEY(d->id, bio->bi_iter.bi_sector, 0), |
