Pausing udev events during commit of RAID partition tables to map its logical partitions.

This commit is contained in:
Caio Carvalho 2018-07-24 03:12:02 -03:00
parent 700dddb875
commit 8b28001ae2
1 changed files with 6 additions and 0 deletions

View File

@ -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;
}