|
@@ -197,6 +197,7 @@ out:
|
|
|
mutex_init(&dc->timer_lock);
|
|
|
atomic_set(&dc->may_delay, 1);
|
|
|
|
|
|
+ ti->num_flush_requests = 1;
|
|
|
ti->private = dc;
|
|
|
return 0;
|
|
|
|
|
@@ -278,8 +279,9 @@ static int delay_map(struct dm_target *ti, struct bio *bio,
|
|
|
|
|
|
if ((bio_data_dir(bio) == WRITE) && (dc->dev_write)) {
|
|
|
bio->bi_bdev = dc->dev_write->bdev;
|
|
|
- bio->bi_sector = dc->start_write +
|
|
|
- (bio->bi_sector - ti->begin);
|
|
|
+ if (bio_sectors(bio))
|
|
|
+ bio->bi_sector = dc->start_write +
|
|
|
+ (bio->bi_sector - ti->begin);
|
|
|
|
|
|
return delay_bio(dc, dc->write_delay, bio);
|
|
|
}
|