diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 6a4e0dfafe406957f966fee65c4cf002c02b65d4..8d4adffc514e9ea2cbf8f68dc77907f2f4c2991d 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -6715,6 +6715,14 @@ class TLReplaceDisks(Tasklet): _CheckNodeNotDrained(self.lu, remote_node) + old_node_info = self.cfg.GetNodeInfo(secondary_node) + assert old_node_info is not None + if old_node_info.offline and not self.early_release: + # doesn't make sense to delay the release + self.early_release = True + self.lu.LogInfo("Old secondary %s is offline, automatically enabling" + " early-release mode", secondary_node) + else: raise errors.ProgrammerError("Unhandled disk replace mode (%s)" % self.mode)