From f1210d0aa7fa10eb667642b5c7cb0cd294134913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sat, 30 Apr 2016 13:48:06 +0100 Subject: [PATCH] Pass LUKS payload length to cryptsetup --size. Before we were passing the length of the whole LUKS partition. After shrinking LUKS partitions blkid would not recognize them. --- src/fs/luks.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index e0cf675..ab966a6 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -483,6 +483,7 @@ bool luks::resize(Report& report, const QString& deviceNode, qint64 newLength) c if (mapperNode.isEmpty()) return false; + qint64 payloadLength = newLength - getPayloadOffset(deviceNode).toInt() * m_logicalSectorSize; if ( newLength - length() * m_logicalSectorSize > 0 ) { ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("resize"), mapperNode }); @@ -495,9 +496,9 @@ bool luks::resize(Report& report, const QString& deviceNode, qint64 newLength) c else report.line() << xi18nc("@info/plain", "Resizing encrypted file system on partition %1 failed.", deviceNode); } - else if (m_innerFs->resize(report, mapperNode, newLength - getPayloadOffset(deviceNode).toInt() * m_logicalSectorSize)) + else if (m_innerFs->resize(report, mapperNode, payloadLength)) { - ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("--size"), QString::number(newLength / m_logicalSectorSize), QStringLiteral("resize"), mapperNode }); + ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("--size"), QString::number(payloadLength / m_logicalSectorSize), QStringLiteral("resize"), mapperNode }); report.line() << xi18nc("@info/plain", "Resizing LUKS crypt on partition %1.", deviceNode); if (cryptResizeCmd.run(-1) && cryptResizeCmd.exitCode() == 0) {