File 0079-Assemble-ensure-stripe_cache-is-big-enough-to-handle.patch of Package mdadm.5365

From 56fcbcbb6f17df0e5dedf59744deee037c5d5fbd Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 18 Jun 2015 15:49:52 +1000
Subject: [PATCH 112/359] Assemble: ensure stripe_cache is big enough to handle
 new chunk size
References: bsc#1081910

If you reshape to a larger chunk size, and need to restart,
it can have problems.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Coly Li <colyli@suse.de>

---
 Assemble.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Assemble.c b/Assemble.c
index 42710a8..f5c8dcd 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -1109,7 +1109,11 @@ static int start_array(int mdfd,
 				/* might need to increase the size
 				 * of the stripe cache - default is 256
 				 */
-				if (256 < 4 * (content->array.chunk_size/4096)) {
+				int chunk_size = content->array.chunk_size;
+				if (content->reshape_active &&
+				    content->new_chunk > chunk_size)
+					chunk_size = content->new_chunk;
+				if (256 < 4 * ((content->array.chunk_size+4065)/4096)) {
 					struct mdinfo *sra = sysfs_read(mdfd, NULL, 0);
 					if (sra)
 						sysfs_set_num(sra, NULL,
-- 
2.16.1

openSUSE Build Service is sponsored by