int force, struct mddev_dev *devlist,
unsigned long long data_offset,
char *backup_file, int verbose, int forked,
- int restart, int freeze_reshape);
+ int restart);
static int reshape_container(char *container, char *devname,
int mdfd,
struct supertype *st,
sync_metadata(st);
rv = reshape_array(container, fd, devname, st, &info, c->force,
devlist, s->data_offset, c->backup_file,
- c->verbose, 0, 0, 0);
+ c->verbose, 0, 0);
frozen = 0;
}
release:
int force, struct mddev_dev *devlist,
unsigned long long data_offset,
char *backup_file, int verbose, int forked,
- int restart, int freeze_reshape)
+ int restart)
{
struct reshape reshape;
int spares_needed;
}
if (restart)
sysfs_set_str(sra, NULL, "array_state", "active");
- if (freeze_reshape) {
- free(fdlist);
- free(offsets);
- sysfs_free(sra);
- pr_err("Reshape has to be continued from location %llu when root filesystem has been mounted.\n",
- sra->reshape_progress);
- return 1;
- }
if (!forked)
if (continue_via_systemd(container ?: sra->sys_name,
*/
ping_monitor(container);
- if (!forked && !c->freeze_reshape)
+ if (!forked)
if (continue_via_systemd(container, GROW_SERVICE, NULL))
return 0;
unfreeze(st);
return 1;
default: /* parent */
- if (!c->freeze_reshape)
- printf("%s: multi-array reshape continues in background\n", Name);
+ printf("%s: multi-array reshape continues in background\n", Name);
return 0;
case 0: /* child */
manage_fork_fds(0);
rv = reshape_array(container, fd, adev, st,
content, c->force, NULL, INVALID_SECTORS,
- c->backup_file, c->verbose, 1, restart,
- c->freeze_reshape);
+ c->backup_file, c->verbose, 1, restart);
close(fd);
- if (c->freeze_reshape) {
- sysfs_free(cc);
- exit(0);
- }
-
restart = 0;
if (rv)
break;
} else
ret_val = reshape_array(NULL, mdfd, "array", st, info, 1,
NULL, INVALID_SECTORS, c->backup_file,
- 0, forked, 1 | info->reshape_active,
- c->freeze_reshape);
+ 0, forked, 1 | info->reshape_active);
return ret_val;
}
.I mdadm
are used to add different devices).
-.TP
-.BR \-\-continue
-This option is complementary to the
-.B \-\-freeze-reshape
-option for assembly. It is needed when
-.B \-\-grow
-operation is interrupted and it is not restarted automatically due to
-.B \-\-freeze-reshape
-usage during array assembly. This option is used together with
-.BR \-G
-, (
-.BR \-\-grow
-) command and device for a pending reshape to be continued.
-All parameters required for reshape continuation will be read from array metadata.
-If initial
-.BR \-\-grow
-command had required
-.BR \-\-backup\-file=
-option to be set, continuation option will require to have exactly the same
-backup file given as well.
-.IP
-Any other parameter passed together with
-.BR \-\-continue
-option will be ignored.
-
.TP
.BR \-N ", " \-\-name=
Set a
and allows the array to be again used on a kernel prior to Linux 5.3.
This option should be used with great caution.
-.TP
-.BR \-\-freeze\-reshape
-This option is intended to be used in start-up scripts during the initrd boot phase.
-When the array under reshape is assembled during the initrd phase, this option
-stops the reshape after the reshape-critical section has been restored. This happens
-before the file system pivot operation and avoids loss of filesystem context.
-Losing file system context would cause reshape to be broken.
-
-Reshape can be continued later using the
-.B \-\-continue
-option for the grow command.
-
.SH For Manage mode:
.TP