38 lines
1.0 KiB
Diff
38 lines
1.0 KiB
Diff
|
|
--- multipath-tools-130222-patched/multipathd/cli_handlers.c 2017-10-12 19:19:08.000000000 +0800
|
||
|
|
+++ multipath-tools-130222-patched1/multipathd/cli_handlers.c 2017-10-17 14:43:43.000000000 +0800
|
||
|
|
@@ -593,9 +593,10 @@
|
||
|
|
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);
|
||
|
|
@@ -627,6 +628,22 @@
|
||
|
|
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);
|