summaryrefslogtreecommitdiffstats
path: root/Assemble.c
diff options
context:
space:
mode:
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Assemble.c b/Assemble.c
index 3ee028b..0cdeeda 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -934,6 +934,20 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
fprintf(stderr, ".\n");
}
+ if (info.reshape_active &&
+ info.array.level >= 4 &&
+ info.array.level <= 6) {
+ /* might need to increase the size
+ * of the stripe cache - default is 256
+ */
+ if (256 < 4 * (info.array.chunk_size/4096)) {
+ struct mdinfo *sra = sysfs_read(mdfd, 0, 0);
+ if (sra)
+ sysfs_set_num(sra, NULL,
+ "stripe_cache_size",
+ (4 * info.array.chunk_size / 4096) + 1);
+ }
+ }
if (must_close) {
int usecs = 1;
close(mdfd);