2021-11-23 21:49:34 +08:00
|
|
|
From f3c11af226bcbb36da7c2802774c6128dd88b5b4 Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: Lixiaokeng <lixiaokeng@huawei.com>
|
|
|
|
|
Date: Tue, 23 Nov 2021 20:14:23 +0800
|
|
|
|
|
Subject: [PATCH 05/15] fix multipathd resize when not all paths size are equal
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
multipathd/cli_handlers.c | 19 ++++++++++++++++++-
|
|
|
|
|
1 file changed, 18 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
|
|
|
|
|
index 6d3a0ae..aeb2be5 100644
|
2020-07-16 18:51:36 +08:00
|
|
|
--- a/multipathd/cli_handlers.c
|
|
|
|
|
+++ b/multipathd/cli_handlers.c
|
2021-11-23 21:49:34 +08:00
|
|
|
@@ -866,9 +866,10 @@ cli_resize(void *v, char **reply, int *len, void *data)
|
2020-01-10 17:13:17 +08:00
|
|
|
char * mapname = get_keyparam(v, MAP);
|
|
|
|
|
struct multipath *mpp;
|
|
|
|
|
int minor;
|
|
|
|
|
- unsigned long long size;
|
|
|
|
|
+ unsigned long long size, sz;
|
|
|
|
|
struct pathgroup *pgp;
|
|
|
|
|
struct path *pp;
|
|
|
|
|
+ int i,j;
|
|
|
|
|
|
|
|
|
|
mapname = convert_dev(mapname, 0);
|
|
|
|
|
condlog(2, "%s: resize map (operator)", mapname);
|
2021-11-23 21:49:34 +08:00
|
|
|
@@ -906,6 +907,22 @@ cli_resize(void *v, char **reply, int *len, void *data)
|
2020-01-10 17:13:17 +08:00
|
|
|
mapname);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ vector_foreach_slot (mpp->pg, pgp, i) {
|
|
|
|
|
+ vector_foreach_slot (pgp->paths, pp, j) {
|
|
|
|
|
+ if (!pp->udev || sysfs_get_size(pp, &sz)) {
|
|
|
|
|
+ condlog(0, "%s: couldn't get size for sysfs. cannot resize",
|
|
|
|
|
+ mapname);
|
|
|
|
|
+ return 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (size != sz) {
|
|
|
|
|
+ condlog(0, "%s: not all path sizes are equal, please check. cannot resize",
|
|
|
|
|
+ mapname);
|
|
|
|
|
+ return 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
if (size == mpp->size) {
|
|
|
|
|
condlog(0, "%s: map is still the same size (%llu)", mapname,
|
|
|
|
|
mpp->size);
|
2020-11-04 21:19:44 +08:00
|
|
|
--
|
|
|
|
|
1.8.3.1
|
|
|
|
|
|