diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2009-06-22 10:12:23 +0100 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2009-06-22 10:12:23 +0100 |
commit | c927259e34e518d913d86f51c71b786a513f94d6 (patch) | |
tree | 0797e9e4689749ad70b6739f845374dc9c57c65d /drivers/md | |
parent | 647c7db14ef9cacc4ccb3683e206b61f0de6dc2b (diff) | |
download | lwn-c927259e34e518d913d86f51c71b786a513f94d6.tar.gz lwn-c927259e34e518d913d86f51c71b786a513f94d6.zip |
dm delay: support barriers
Flush support for dm-delay target.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-delay.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/md/dm-delay.c b/drivers/md/dm-delay.c index 559dbb52bc85..8ad8a9044bbf 100644 --- a/drivers/md/dm-delay.c +++ b/drivers/md/dm-delay.c @@ -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); } |