parent
13beb99319
commit
2c7b3f2bfa
|
@ -492,18 +492,20 @@ bool luks::resize(Report& report, const QString& deviceNode, qint64 newLength) c
|
|||
if (mapperName().isEmpty())
|
||||
return false;
|
||||
|
||||
if ( newLength - length() * sectorSize() > 0 )
|
||||
const qint64 sizeDiff = newLength - length() * sectorSize();
|
||||
const qint64 newPayloadSize = m_PayloadSize + sizeDiff;
|
||||
if ( sizeDiff > 0 ) // grow
|
||||
{
|
||||
ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("resize"), mapperName() });
|
||||
report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition <filename>%1</filename>.", deviceNode);
|
||||
|
||||
if (cryptResizeCmd.run(-1) && cryptResizeCmd.exitCode() == 0)
|
||||
return m_innerFs->resize(report, mapperName(), m_PayloadSize);
|
||||
return m_innerFs->resize(report, mapperName(), newPayloadSize);
|
||||
}
|
||||
else if (m_innerFs->resize(report, mapperName(), m_PayloadSize))
|
||||
else if (m_innerFs->resize(report, mapperName(), newPayloadSize)) // shrink
|
||||
{
|
||||
ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"),
|
||||
{ QStringLiteral("--size"), QString::number(m_PayloadSize / 512), // LUKS1 payload length is specified in multiples of 512 bytes
|
||||
{ QStringLiteral("--size"), QString::number(newPayloadSize / 512), // LUKS1 payload length is specified in multiples of 512 bytes
|
||||
QStringLiteral("resize"), mapperName() });
|
||||
report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition <filename>%1</filename>.", deviceNode);
|
||||
if (cryptResizeCmd.run(-1) && cryptResizeCmd.exitCode() == 0)
|
||||
|
|
|
@ -89,7 +89,9 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength)
|
|||
if (mapperName().isEmpty())
|
||||
return false;
|
||||
|
||||
if ( newLength - length() * sectorSize() > 0 )
|
||||
const qint64 sizeDiff = newLength - length() * sectorSize();
|
||||
const qint64 newPayloadSize = m_PayloadSize + sizeDiff;
|
||||
if ( sizeDiff > 0 ) // grow
|
||||
{
|
||||
ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("resize"), mapperName() });
|
||||
report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition <filename>%1</filename>.", deviceNode);
|
||||
|
@ -102,12 +104,12 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength)
|
|||
if (!cryptResizeCmd.start(-1))
|
||||
return false;
|
||||
if ( cryptResizeCmd.exitCode() == 0 )
|
||||
return m_innerFs->resize(report, mapperName(), m_PayloadSize);
|
||||
return m_innerFs->resize(report, mapperName(), newPayloadSize);
|
||||
}
|
||||
else if (m_innerFs->resize(report, mapperName(), m_PayloadSize))
|
||||
else if (m_innerFs->resize(report, mapperName(), newPayloadSize))
|
||||
{
|
||||
ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"),
|
||||
{ QStringLiteral("--size"), QString::number(m_PayloadSize / 512), // FIXME, LUKS2 can have different sector sizes
|
||||
{ QStringLiteral("--size"), QString::number(newPayloadSize / 512), // FIXME, LUKS2 can have different sector sizes
|
||||
QStringLiteral("resize"), mapperName() });
|
||||
report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition <filename>%1</filename>.", deviceNode);
|
||||
if (m_KeyLocation == KeyLocation::keyring) {
|
||||
|
|
Loading…
Reference in New Issue