python-blivet/backport-Close-fd-if-it-fails-to-read-the-device.patch
liuyumeng 99ea09e2d7 closefd,ifitfails to readdevice,fixunboundlocalerror
(cherry picked from commit 13bfec47c5573dc3fa1f6cc17d4acf0526e773c4)
2021-07-29 10:45:30 +08:00

34 lines
1.2 KiB
Diff

From 1383e61211aaeee106b29f2e408fdda8f92370df Mon Sep 17 00:00:00 2001
From: Nijin Ashok <nashok@redhat.com>
Date: Tue, 15 Sep 2020 18:15:32 +0530
Subject: [PATCH] Close fd if it fails to read the device
If the device is unmapped from the storage side, the os.read will
fail with i/o error. However, it's not closing the fd and any
process using the blivet module will hold the device indefeniely. This
prevents administrator from removing the device from multipath
layer.
Conflict:NA
Reference:https://github.com/storaged-project/blivet/commit/1383e61211aaeee106b29f2e408fdda8f92370df
---
blivet/devicelibs/edd.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/blivet/devicelibs/edd.py b/blivet/devicelibs/edd.py
index a661f73..f64c4e5 100644
--- a/blivet/devicelibs/edd.py
+++ b/blivet/devicelibs/edd.py
@@ -679,6 +679,8 @@ def collect_mbrs(devices, root=None):
testdata_log.debug("device %s data[440:443] raised %s", path, e)
log.error("edd: could not read mbrsig from disk %s: %s",
dev.name, str(e))
+ if fd:
+ os.close(fd)
continue
mbrsig_str = "0x%08x" % mbrsig
--
2.23.0