diff options
Diffstat (limited to 'Assemble.c')
-rw-r--r-- | Assemble.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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); |