From e2e4a48250acef272934d4c0f5df39d07439054d Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 13 Oct 2008 11:55:11 +1100 Subject: [PATCH] --- yaml --- r: 115080 b: refs/heads/master c: ea43ddd8491feccf36267349748ea91b1194481e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/md.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e3f348383f9f..1209567eb1ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7d3c6f8717ee6c2bf6cba5fa0bda3b28fbda6015 +refs/heads/master: ea43ddd8491feccf36267349748ea91b1194481e diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index 7d8c2bb0a67c..13dd7b276150 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -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")) {