From: NeilBrown Date: Thu, 18 Jun 2015 05:49:52 +0000 (+1000) Subject: Assemble: ensure stripe_cache is big enough to handle new chunk size X-Git-Tag: mdadm-3.3.3~36 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=56fcbcbb6f17df0e5dedf59744deee037c5d5fbd;p=thirdparty%2Fmdadm.git Assemble: ensure stripe_cache is big enough to handle new chunk size If you reshape to a larger chunk size, and need to restart, it can have problems. Signed-off-by: NeilBrown --- diff --git a/Assemble.c b/Assemble.c index 42710a8a..f5c8dcd6 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,