cdf21d08ef
After updating to latest upstream, bug2163711 can be fixed. We don't use rhel only udev rule anymore and we use the udev rules from upstream. So we don't need to modify our rhel only udev rule again. Resolves: bz#2163711 Signed-off-by: Xiao Ni <xni@redhat.com>
60 lines
2.1 KiB
Diff
60 lines
2.1 KiB
Diff
From 461fae7e7809670d286cc19aac5bfa861c29f93a Mon Sep 17 00:00:00 2001
|
|
From: Kinga Tanska <kinga.tanska@intel.com>
|
|
Date: Tue, 27 Dec 2022 06:50:43 +0100
|
|
Subject: [PATCH 81/83] incremental, manage: do not verify if remove is safe
|
|
|
|
Function is_remove_safe() was introduced to verify if removing
|
|
member device won't cause failed state of the array. This
|
|
verification should be used only with set-faulty command. Add
|
|
special mode indicating that Incremental removal was executed.
|
|
If this mode is used do not execute is_remove_safe() routine.
|
|
|
|
Signed-off-by: Kinga Tanska <kinga.tanska@intel.com>
|
|
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
|
---
|
|
Incremental.c | 2 +-
|
|
Manage.c | 7 ++++---
|
|
2 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/Incremental.c b/Incremental.c
|
|
index ff3548c0..09b94b9f 100644
|
|
--- a/Incremental.c
|
|
+++ b/Incremental.c
|
|
@@ -1744,7 +1744,7 @@ int IncrementalRemove(char *devname, char *id_path, int verbose)
|
|
|
|
memset(&devlist, 0, sizeof(devlist));
|
|
devlist.devname = devname;
|
|
- devlist.disposition = 'f';
|
|
+ devlist.disposition = 'I';
|
|
/* for a container, we must fail each member array */
|
|
if (ent->metadata_version &&
|
|
strncmp(ent->metadata_version, "external:", 9) == 0) {
|
|
diff --git a/Manage.c b/Manage.c
|
|
index 4d6e54b1..6184d3f7 100644
|
|
--- a/Manage.c
|
|
+++ b/Manage.c
|
|
@@ -1494,8 +1494,9 @@ int Manage_subdevs(char *devname, int fd,
|
|
/* Assume this is a kernel-internal name like 'sda1' */
|
|
int found = 0;
|
|
char dname[55];
|
|
- if (dv->disposition != 'r' && dv->disposition != 'f') {
|
|
- pr_err("%s only meaningful with -r or -f, not -%c\n",
|
|
+ if (dv->disposition != 'r' && dv->disposition != 'f' &&
|
|
+ dv->disposition != 'I') {
|
|
+ pr_err("%s only meaningful with -r, -f or -I, not -%c\n",
|
|
dv->devname, dv->disposition);
|
|
goto abort;
|
|
}
|
|
@@ -1647,7 +1648,7 @@ int Manage_subdevs(char *devname, int fd,
|
|
close(sysfd);
|
|
goto abort;
|
|
}
|
|
-
|
|
+ case 'I': /* incremental fail */
|
|
if ((sysfd >= 0 && write(sysfd, "faulty", 6) != 6) ||
|
|
(sysfd < 0 && ioctl(fd, SET_DISK_FAULTY,
|
|
rdev))) {
|
|
--
|
|
2.38.1
|
|
|