udisks2/udisks-2.11.0-lvm2-unused_device_detection-try_harder.patch

34 lines
1.1 KiB
Diff
Raw Normal View History

From d747e73aaec2c4e2cf124646230159e8b45a5da8 Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbzatek@redhat.com>
Date: Tue, 5 Nov 2024 17:01:00 +0100
Subject: [PATCH] lvm2: Try opening for unused device detection harder
Though the voluntary BSD locks cannot be used here due to opening
O_EXCL already, let's make several attempts before bailing out.
---
modules/lvm2/udiskslvm2daemonutil.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/lvm2/udiskslvm2daemonutil.c b/modules/lvm2/udiskslvm2daemonutil.c
index b2131f9ca..32736d20f 100644
--- a/modules/lvm2/udiskslvm2daemonutil.c
+++ b/modules/lvm2/udiskslvm2daemonutil.c
@@ -65,9 +65,16 @@ udisks_daemon_util_lvm2_block_is_unused (UDisksBlock *block,
{
const gchar *device_file;
int fd;
+ gint num_tries = 0;
device_file = udisks_block_get_device (block);
- fd = open (device_file, O_RDONLY | O_EXCL);
+
+ while ((fd = open (device_file, O_RDONLY | O_EXCL)) < 0)
+ {
+ g_usleep (100 * 1000); /* microseconds */
+ if (num_tries++ > 10)
+ break;
+ }
if (fd < 0)
{
g_set_error (error, UDISKS_ERROR, UDISKS_ERROR_FAILED,