aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-03-27 01:18:13 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 08:45:02 -0800
commit16484bf59634e25d1299761e5ed8bacf22bc6368 (patch)
treef11f049f5b60d766c402937bbb72c288a454ba4a /drivers
parent[PATCH] md: Split reshape handler in check_reshape and start_reshape (diff)
downloadlinux-dev-16484bf59634e25d1299761e5ed8bacf22bc6368.tar.xz
linux-dev-16484bf59634e25d1299761e5ed8bacf22bc6368.zip
[PATCH] md: Make 'reshape' a possible sync_action action
This allows reshape to be triggerred via sysfs (which is the only way to start it happening). Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/md.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 1a637676a930..a79dd33d343d 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2247,7 +2247,14 @@ action_store(mddev_t *mddev, const char *page, size_t len)
return -EBUSY;
else if (cmd_match(page, "resync") || cmd_match(page, "recover"))
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
- else {
+ else if (cmd_match(page, "reshape")) {
+ int err;
+ if (mddev->pers->start_reshape == NULL)
+ return -EINVAL;
+ err = mddev->pers->start_reshape(mddev);
+ if (err)
+ return err;
+ } else {
if (cmd_match(page, "check"))
set_bit(MD_RECOVERY_CHECK, &mddev->recovery);
else if (cmd_match(page, "repair"))