Messages in this thread Patch in this message | | | Date | Tue, 10 Feb 2009 16:25:42 -0800 | From | Greg KH <> | Subject | [patch 42/56] md: Allow metadata_version to be updated for externally managed metadata. |
| |
2.6.27-stable review patch. If anyone has any objections, please let us know. ------------------
From: NeilBrown <neilb@suse.de>
commit ea43ddd8491feccf36267349748ea91b1194481e upstream.
For externally managed metadata, the 'metadata_version' sysfs attribute is really just a channel for user-space programs to communicate about how the array is being managed. It can be useful for this to be changed while the array is active.
Normally changes to metadata_version are not permitted while the array is active. Change that so that if the metadata is externally managed, the metadata_version can be changed to a different flavour of external management.
Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/md/md.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
--- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -2960,7 +2960,13 @@ metadata_store(mddev_t *mddev, const cha { int major, minor; char *e; - if (!list_empty(&mddev->disks)) + /* Changing the details of 'external' metadata is + * always permitted. Otherwise there must be + * no devices attached to the array. + */ + if (mddev->external && strncmp(buf, "external:", 9) == 0) + ; + else if (!list_empty(&mddev->disks)) return -EBUSY; if (cmd_match(buf, "none")) {
| |