If the reshape does not require a backup, Grow_continue can
abort early.
Signed-off-by: NeilBrown <neilb@suse.de>
/* reshape already started. just skip to monitoring the reshape */
if (reshape.backup_blocks == 0)
return 0;
/* reshape already started. just skip to monitoring the reshape */
if (reshape.backup_blocks == 0)
return 0;
+ if (restart & RESHAPE_NO_BACKUP)
+ return 0;
goto started;
}
/* The container is frozen but the array may not be.
goto started;
}
/* The container is frozen but the array may not be.
if (array.level == 10) {
/* Reshaping RAID10 does not require any data backup by
* user-space. Instead it requires that the data_offset
if (array.level == 10) {
/* Reshaping RAID10 does not require any data backup by
* user-space. Instead it requires that the data_offset
/* Decide how many blocks (sectors) for a reshape
* unit. The number we have so far is just a minimum
*/
/* Decide how many blocks (sectors) for a reshape
* unit. The number we have so far is just a minimum
*/
close(cfd);
ret_val = reshape_container(st->container_devnm, NULL, mdfd,
st, info, 0, backup_file,
close(cfd);
ret_val = reshape_container(st->container_devnm, NULL, mdfd,
st, info, 0, backup_file,
+ 0,
+ 1 | info->reshape_active,
+ freeze_reshape);
} else
ret_val = reshape_array(NULL, mdfd, "array", st, info, 1,
} else
ret_val = reshape_array(NULL, mdfd, "array", st, info, 1,
- NULL, 0ULL, backup_file, 0, 0, 1,
+ NULL, 0ULL, backup_file, 0, 0,
+ 1 | info->reshape_active,
freeze_reshape);
return ret_val;
freeze_reshape);
return ret_val;