Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea43ddd8 authored by NeilBrown's avatar NeilBrown
Browse files

md: Allow metadata_version to be updated for externally managed metadata.



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: default avatarNeilBrown <neilb@suse.de>
parent 7d3c6f87
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2943,7 +2943,13 @@ metadata_store(mddev_t *mddev, const char *buf, size_t len)
{
	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")) {