diff options
author | NeilBrown <neilb@suse.de> | 2009-03-31 07:39:39 +0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-03-31 07:39:39 +0400 |
commit | 245f46c2c221ef09c7db892f0e3fc2149be42052 (patch) | |
tree | be7e6f4b7b65b682c43e59ef17f7ed580bc8a82b /drivers/md/md.h | |
parent | 409c57f3801701dfee27a28103dda4831306cb20 (diff) | |
download | linux-245f46c2c221ef09c7db892f0e3fc2149be42052.tar.xz |
md: add ->takeover method to support changing the personality managing an array
Implement this for RAID6 to be able to 'takeover' a RAID5 array. The
new RAID6 will use a layout which places Q on the last device, and
that device will be missing.
If there are any available spares, one will immediately have Q
recovered onto it.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.h')
-rw-r--r-- | drivers/md/md.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/md/md.h b/drivers/md/md.h index 84b22d67ba14..8034f62a9d28 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h @@ -321,6 +321,16 @@ struct mdk_personality * others - reserved */ void (*quiesce) (mddev_t *mddev, int state); + /* takeover is used to transition an array from one + * personality to another. The new personality must be able + * to handle the data in the current layout. + * e.g. 2drive raid1 -> 2drive raid5 + * ndrive raid5 -> degraded n+1drive raid6 with special layout + * If the takeover succeeds, a new 'private' structure is returned. + * This needs to be installed and then ->run used to activate the + * array. + */ + void *(*takeover) (mddev_t *mddev); }; |