diff options
Diffstat (limited to 'libbcache/io.c')
-rw-r--r-- | libbcache/io.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libbcache/io.c b/libbcache/io.c index 2f0e48a0..be99a973 100644 --- a/libbcache/io.c +++ b/libbcache/io.c @@ -358,8 +358,8 @@ static void bch_write_endio(struct bio *bio) struct bio *orig = wbio->orig; struct cache *ca = wbio->ca; - if (cache_nonfatal_io_err_on(bio->bi_error, ca, - "data write")) + if (bch_dev_nonfatal_io_err_on(bio->bi_error, ca, + "data write")) set_closure_fn(cl, bch_write_io_error, index_update_wq(op)); bch_account_io_completion_time(ca, wbio->submit_time_us, @@ -722,8 +722,8 @@ void bch_wake_delayed_writes(unsigned long data) spin_lock_irqsave(&c->foreground_write_pd_lock, flags); while ((op = c->write_wait_head)) { - if (!test_bit(CACHE_SET_RO, &c->flags) && - !test_bit(CACHE_SET_STOPPING, &c->flags) && + if (!test_bit(BCH_FS_RO, &c->flags) && + !test_bit(BCH_FS_STOPPING, &c->flags) && time_after(op->expires, jiffies)) { mod_timer(&c->foreground_write_wakeup, op->expires); break; @@ -938,7 +938,7 @@ static int bio_checksum_uncompress(struct cache_set *c, } csum = bch_checksum_bio(c, rbio->crc.csum_type, nonce, src); - if (cache_nonfatal_io_err_on(bch_crc_cmp(rbio->crc.csum, csum), rbio->ca, + if (bch_dev_nonfatal_io_err_on(bch_crc_cmp(rbio->crc.csum, csum), rbio->ca, "data checksum error, inode %llu offset %llu: expected %0llx%0llx got %0llx%0llx (type %u)", rbio->inode, (u64) rbio->parent_iter.bi_sector << 9, rbio->crc.csum.hi, rbio->crc.csum.lo, csum.hi, csum.lo, @@ -1069,8 +1069,8 @@ static void __bch_read_endio(struct cache_set *c, struct bch_read_bio *rbio) } if (rbio->promote && - !test_bit(CACHE_SET_RO, &c->flags) && - !test_bit(CACHE_SET_STOPPING, &c->flags)) { + !test_bit(BCH_FS_RO, &c->flags) && + !test_bit(BCH_FS_STOPPING, &c->flags)) { struct cache_promote_op *promote = rbio->promote; struct closure *cl = &promote->cl; @@ -1119,14 +1119,15 @@ static void bch_read_endio(struct bio *bio) bch_account_io_completion_time(rbio->ca, rbio->submit_time_us, REQ_OP_READ); - cache_nonfatal_io_err_on(bio->bi_error, rbio->ca, "data read"); + bch_dev_nonfatal_io_err_on(bio->bi_error, rbio->ca, "data read"); if (error) { bch_read_error_maybe_retry(c, rbio, error); return; } - if (rbio->crc.compression_type != BCH_COMPRESSION_NONE) { + if (rbio->crc.compression_type != BCH_COMPRESSION_NONE || + bch_csum_type_is_encryption(rbio->crc.csum_type)) { struct bio_decompress_worker *d; preempt_disable(); |