Fix handling of encrypted LVM physical volumes.
This commit is contained in:
parent
e47dd74635
commit
bb8514e859
|
@ -18,6 +18,7 @@
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#include "fs/luks.h"
|
#include "fs/luks.h"
|
||||||
|
#include "fs/lvm2_pv.h"
|
||||||
|
|
||||||
#include "fs/filesystemfactory.h"
|
#include "fs/filesystemfactory.h"
|
||||||
|
|
||||||
|
@ -274,6 +275,10 @@ bool luks::cryptOpen(QWidget* parent, const QString& deviceNode)
|
||||||
if (!m_isCryptOpen)
|
if (!m_isCryptOpen)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
for (auto &p : LVM::pvList) // FIXME: qAsConst
|
||||||
|
if (p.isLuks() && p.partition()->deviceNode() == deviceNode && p.partition()->fileSystem().type() == FileSystem::Lvm2_PV)
|
||||||
|
p.setLuks(false);
|
||||||
|
|
||||||
m_passphrase = passphrase;
|
m_passphrase = passphrase;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -309,6 +314,10 @@ bool luks::cryptClose(const QString& deviceNode)
|
||||||
|
|
||||||
m_isCryptOpen = (m_innerFs != nullptr);
|
m_isCryptOpen = (m_innerFs != nullptr);
|
||||||
|
|
||||||
|
for (auto &p : LVM::pvList) // FIXME: qAsConst
|
||||||
|
if (!p.isLuks() && p.partition()->deviceNode() == deviceNode)
|
||||||
|
p.setLuks(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -268,6 +268,9 @@ QList<LvmPV> lvm2_pv::getPVinNode(const PartitionNode* parent)
|
||||||
// FIXME: reenable newly created PVs (before applying) once everything works
|
// FIXME: reenable newly created PVs (before applying) once everything works
|
||||||
if(p->fileSystem().type() == FileSystem::Lvm2_PV && p->deviceNode() == p->partitionPath())
|
if(p->fileSystem().type() == FileSystem::Lvm2_PV && p->deviceNode() == p->partitionPath())
|
||||||
partitions.append(LvmPV(p->mountPoint(), p));
|
partitions.append(LvmPV(p->mountPoint(), p));
|
||||||
|
|
||||||
|
if(p->fileSystem().type() == FileSystem::Luks && p->deviceNode() == p->partitionPath())
|
||||||
|
partitions.append(LvmPV(p->mountPoint(), p, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return partitions;
|
return partitions;
|
||||||
|
|
|
@ -51,6 +51,10 @@ public:
|
||||||
return m_isLuks;
|
return m_isLuks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setLuks(bool luks) {
|
||||||
|
m_isLuks = luks;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_vgName;
|
QString m_vgName;
|
||||||
QPointer<const Partition> m_p;
|
QPointer<const Partition> m_p;
|
||||||
|
|
Loading…
Reference in New Issue