From 9970fb7b1d4ec0bef338050caf3659e9cb1bb2f4 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 13 Apr 2016 18:32:21 +0200 Subject: [PATCH] Make sure to create the inner fs when detecting. --- src/fs/luks.cpp | 12 ++++++++---- src/fs/luks.h | 2 ++ src/plugins/libparted/libpartedbackend.cpp | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index bd06520..93f5d9f 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -286,10 +286,7 @@ bool luks::cryptOpen(const QString& deviceNode) if (mapperNode.isEmpty()) return false; - FileSystem::Type innerFsType = detectFileSystem(mapperNode); - m_innerFs = FileSystemFactory::cloneWithNewType(innerFsType, - *this); - + loadInnerFilesystem(mapperNode); m_isCryptOpen = (m_innerFs != nullptr); if (m_isCryptOpen) @@ -328,6 +325,13 @@ bool luks::cryptClose(const QString& deviceNode) return false; } +void luks::loadInnerFilesystem(const QString& mapperNode) +{ + FileSystem::Type innerFsType = detectFileSystem(mapperNode); + m_innerFs = FileSystemFactory::cloneWithNewType(innerFsType, + *this); +} + bool luks::mount(const QString& deviceNode, const QString& mountPoint) { if (!m_isCryptOpen) diff --git a/src/fs/luks.h b/src/fs/luks.h index 5bcff08..88b5af7 100644 --- a/src/fs/luks.h +++ b/src/fs/luks.h @@ -108,6 +108,8 @@ public: bool cryptOpen(const QString& deviceNode); bool cryptClose(const QString& deviceNode); + void loadInnerFilesystem(const QString& mapperNode); + virtual bool mount(const QString& deviceNode, const QString& mountPoint) override; virtual bool unmount(const QString& deviceNode) override; diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index f7a6177..639d69a 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -359,6 +359,8 @@ void LibPartedBackend::scanDevicePartitions(PedDevice*, Device& d, PedDisk* pedD luksFs->setCryptOpen(isCryptOpen); if (isCryptOpen) { + luksFs->loadInnerFilesystem(mapperNode); + mountPoint = mountPoints.findByDevice(mapperNode) ? mountPoints.findByDevice(mapperNode)->mountPoint() : QString();