summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
new file mode 100644
index 00000000..b5f81f28
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
@@ -0,0 +1,41 @@
1From e8cf7231ce4f6464f8962ae6ef0421da40ddad15 Mon Sep 17 00:00:00 2001
2From: Mikulas Patocka <mpatocka@redhat.com>
3Date: Fri, 20 Jul 2012 14:25:07 +0100
4Subject: [PATCH 073/109] dm raid1: set discard_zeroes_data_unsupported
5
6commit 7c8d3a42fe1c58a7e8fd3f6a013e7d7b474ff931 upstream.
7
8We can't guarantee that REQ_DISCARD on dm-mirror zeroes the data even if
9the underlying disks support zero on discard. So this patch sets
10ti->discard_zeroes_data_unsupported.
11
12For example, if the mirror is in the process of resynchronizing, it may
13happen that kcopyd reads a piece of data, then discard is sent on the
14same area and then kcopyd writes the piece of data to another leg.
15Consequently, the data is not zeroed.
16
17The flag was made available by commit 983c7db347db8ce2d8453fd1d89b7a4bb6920d56
18(dm crypt: always disable discard_zeroes_data).
19
20Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
21Signed-off-by: Alasdair G Kergon <agk@redhat.com>
22Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
23---
24 drivers/md/dm-raid1.c | 1 +
25 1 files changed, 1 insertions(+), 0 deletions(-)
26
27diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
28index 42ef54f..dae2b7a 100644
29--- a/drivers/md/dm-raid1.c
30+++ b/drivers/md/dm-raid1.c
31@@ -1080,6 +1080,7 @@ static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)
32 ti->split_io = dm_rh_get_region_size(ms->rh);
33 ti->num_flush_requests = 1;
34 ti->num_discard_requests = 1;
35+ ti->discard_zeroes_data_unsupported = 1;
36
37 ms->kmirrord_wq = alloc_workqueue("kmirrord",
38 WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0);
39--
401.7.7.6
41