summaryrefslogtreecommitdiff
path: root/app-cdr/dolphin-plugins-mountiso/files/dolphin-plugins-mountiso-20.12.3-dont-mount-ISO-multiple-times.patch
blob: fc59e171850302bd2e9530f908f9c2749855173c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From f136702d2adc8643ea12f1b6e3bf97925f1b33f0 Mon Sep 17 00:00:00 2001
From: Kwon-Young Choi <kwon-young.choi@hotmail.fr>
Date: Fri, 19 Mar 2021 17:10:31 +0100
Subject: [PATCH] BackingFile property should be use with StorageVolume instead
 of StorageAccess

BUG: 434617

When mounting an iso with `udisksctl`, first a loop device is created
`/dev/loop0` then a second device `/dev/loop0p1` is used to mount it on
a filesystem location.

Querying for StorageAccess devices sometimes only returns the `/dev/loop0p1`
device without the `/dev/loop0` device and the BackingFile property does not
work on `/dev/loop0p1`.

Solution: query for StorageVolume instead which returns all loop devices:
`/dev/loop0` and `/dev/loop1`.

Warning: Because StorageVolume returns more devices, the function
`getDeviceFromBackingFile` could be a little bit slower.
---
 mountiso/mountisoaction.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mountiso/mountisoaction.cpp b/mountiso/mountisoaction.cpp
index e5575ae..d198a89 100644
--- a/mountiso/mountisoaction.cpp
+++ b/mountiso/mountisoaction.cpp
@@ -78,7 +78,7 @@ MountIsoAction::MountIsoAction(QObject *parent, const QVariantList &)
 const Solid::Device getDeviceFromBackingFile(const QString &backingFile)
 {
     const QList<Solid::Device> blockDevices =
-        Solid::Device::listFromQuery("[ IS StorageAccess AND IS GenericInterface ]");
+        Solid::Device::listFromQuery("[ IS StorageVolume AND IS GenericInterface ]");
 
     for (const Solid::Device &device : blockDevices) {
         auto genericDevice = device.as<Solid::GenericInterface>();
-- 
GitLab