Try to workaround systemd automounting.
This commit is contained in:
parent
dda5ddd3e6
commit
9cc583e7d5
|
@ -1,6 +1,6 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
* Copyright (C) 2016-2018 by Andrius Štikonas <andrius@stikonas.eu> *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or *
|
* This program is free software; you can redistribute it and/or *
|
||||||
* modify it under the terms of the GNU General Public License as *
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
@ -19,6 +19,8 @@
|
||||||
#include "core/operationrunner.h"
|
#include "core/operationrunner.h"
|
||||||
#include "core/operationstack.h"
|
#include "core/operationstack.h"
|
||||||
#include "ops/operation.h"
|
#include "ops/operation.h"
|
||||||
|
|
||||||
|
#include "util/externalcommand.h"
|
||||||
#include "util/report.h"
|
#include "util/report.h"
|
||||||
|
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
@ -46,6 +48,11 @@ void OperationRunner::run()
|
||||||
|
|
||||||
bool status = true;
|
bool status = true;
|
||||||
|
|
||||||
|
// Disable udev event queue. systemd sometimes likes to automount devices when refreshing partition table
|
||||||
|
// While this does not prevent automounting, it will at least delay it until partitioning operations are finished
|
||||||
|
ExternalCommand udevadmStopQueue(report(), QStringLiteral("udevadm"), { QStringLiteral("control"), QStringLiteral("--stop-exec-queue") });
|
||||||
|
udevadmStopQueue.run();
|
||||||
|
|
||||||
// Disable Plasma removable device automounting
|
// Disable Plasma removable device automounting
|
||||||
QStringList modules;
|
QStringList modules;
|
||||||
QDBusConnection bus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, QStringLiteral("sessionBus"));
|
QDBusConnection bus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, QStringLiteral("sessionBus"));
|
||||||
|
@ -84,6 +91,9 @@ void OperationRunner::run()
|
||||||
if (automounter)
|
if (automounter)
|
||||||
kdedInterface.call( QStringLiteral("loadModule"), automounterService );
|
kdedInterface.call( QStringLiteral("loadModule"), automounterService );
|
||||||
|
|
||||||
|
ExternalCommand udevadmStartQueue(report(), QStringLiteral("udevadm"), { QStringLiteral("control"), QStringLiteral("--start-exec-queue") });
|
||||||
|
udevadmStartQueue.run();
|
||||||
|
|
||||||
if (!status)
|
if (!status)
|
||||||
emit error();
|
emit error();
|
||||||
else if (isCancelling())
|
else if (isCancelling())
|
||||||
|
|
Loading…
Reference in New Issue