aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-raid1.c
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2012-07-20 14:25:07 +0100
committerBen Hutchings <ben@decadent.org.uk>2012-07-25 04:11:32 +0100
commit9f1e3e0f9fae973747e113848f9a9d0a2e1867f9 (patch)
treed4cf4ceb6a1547dbf9ea5733a171baf45b687e3b /drivers/md/dm-raid1.c
parent0409d1635121277180269f8294ced70214cbd837 (diff)
downloadkernel_samsung_smdk4412-9f1e3e0f9fae973747e113848f9a9d0a2e1867f9.zip
kernel_samsung_smdk4412-9f1e3e0f9fae973747e113848f9a9d0a2e1867f9.tar.gz
kernel_samsung_smdk4412-9f1e3e0f9fae973747e113848f9a9d0a2e1867f9.tar.bz2
dm raid1: set discard_zeroes_data_unsupported
commit 7c8d3a42fe1c58a7e8fd3f6a013e7d7b474ff931 upstream. We can't guarantee that REQ_DISCARD on dm-mirror zeroes the data even if the underlying disks support zero on discard. So this patch sets ti->discard_zeroes_data_unsupported. For example, if the mirror is in the process of resynchronizing, it may happen that kcopyd reads a piece of data, then discard is sent on the same area and then kcopyd writes the piece of data to another leg. Consequently, the data is not zeroed. The flag was made available by commit 983c7db347db8ce2d8453fd1d89b7a4bb6920d56 (dm crypt: always disable discard_zeroes_data). Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers/md/dm-raid1.c')
-rw-r--r--drivers/md/dm-raid1.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 42ef54f..dae2b7a 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -1080,6 +1080,7 @@ static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)
ti->split_io = dm_rh_get_region_size(ms->rh);
ti->num_flush_requests = 1;
ti->num_discard_requests = 1;
+ ti->discard_zeroes_data_unsupported = 1;
ms->kmirrord_wq = alloc_workqueue("kmirrord",
WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0);