From 8b28001ae2a6931ba595451557cf2fbf88110f0c Mon Sep 17 00:00:00 2001 From: Caio Carvalho Date: Tue, 24 Jul 2018 03:12:02 -0300 Subject: [PATCH] Pausing udev events during commit of RAID partition tables to map its logical partitions. --- src/plugins/sfdisk/sfdiskpartitiontable.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/sfdisk/sfdiskpartitiontable.cpp b/src/plugins/sfdisk/sfdiskpartitiontable.cpp index d7f84c6..470e783 100644 --- a/src/plugins/sfdisk/sfdiskpartitiontable.cpp +++ b/src/plugins/sfdisk/sfdiskpartitiontable.cpp @@ -53,10 +53,16 @@ bool SfdiskPartitionTable::open() bool SfdiskPartitionTable::commit(quint32 timeout) { + if (m_device->type() == Device::Type::SoftwareRAID_Device) + ExternalCommand(QStringLiteral("udevadm"), { QStringLiteral("control"), QStringLiteral("--stop-exec-queue") }).run(); + ExternalCommand(QStringLiteral("udevadm"), { QStringLiteral("settle"), QStringLiteral("--timeout=") + QString::number(timeout) }).run(); ExternalCommand(QStringLiteral("blockdev"), { QStringLiteral("--rereadpt"), m_device->deviceNode() }).run(); ExternalCommand(QStringLiteral("udevadm"), { QStringLiteral("trigger") }).run(); + if (m_device->type() == Device::Type::SoftwareRAID_Device) + ExternalCommand(QStringLiteral("udevadm"), { QStringLiteral("control"), QStringLiteral("--start-exec-queue") }).run(); + return true; }