Эх сурвалжийг харах

md-cluster: change array_sectors and update size are not supported

Currently, some features are not supported yet,
such as change array_sectors and update size, so
return EINVAL for them and listed it in document.

Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Guoqing Jiang 9 жил өмнө
parent
commit
ab5a98b132

+ 6 - 0
Documentation/md-cluster.txt

@@ -316,3 +316,9 @@ The algorithm is:
  nodes are using the raid which is achieved by lock all bitmap
  nodes are using the raid which is achieved by lock all bitmap
  locks within the cluster, and also those locks are unlocked
  locks within the cluster, and also those locks are unlocked
  accordingly.
  accordingly.
+
+7. Unsupported features
+
+There are somethings which are not supported by cluster MD yet.
+
+- update size and change array_sectors.

+ 8 - 0
drivers/md/md.c

@@ -4817,6 +4817,10 @@ array_size_store(struct mddev *mddev, const char *buf, size_t len)
 	if (err)
 	if (err)
 		return err;
 		return err;
 
 
+	/* cluster raid doesn't support change array_sectors */
+	if (mddev_is_clustered(mddev))
+		return -EINVAL;
+
 	if (strncmp(buf, "default", 7) == 0) {
 	if (strncmp(buf, "default", 7) == 0) {
 		if (mddev->pers)
 		if (mddev->pers)
 			sectors = mddev->pers->size(mddev, 0, 0);
 			sectors = mddev->pers->size(mddev, 0, 0);
@@ -6438,6 +6442,10 @@ static int update_size(struct mddev *mddev, sector_t num_sectors)
 	int rv;
 	int rv;
 	int fit = (num_sectors == 0);
 	int fit = (num_sectors == 0);
 
 
+	/* cluster raid doesn't support update size */
+	if (mddev_is_clustered(mddev))
+		return -EINVAL;
+
 	if (mddev->pers->resize == NULL)
 	if (mddev->pers->resize == NULL)
 		return -EINVAL;
 		return -EINVAL;
 	/* The "num_sectors" is the number of sectors of each device that
 	/* The "num_sectors" is the number of sectors of each device that