From bd573233ec03961d087e57b0e169edfb5562d8a9 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 23 Dec 2015 15:42:21 +0100 Subject: [PATCH] Trying out something really horrible. --- .../partition/core/PartitionActions.cpp | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index f8e44f22e..7b9f156e9 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -29,6 +29,7 @@ #include #include +#include #include @@ -201,18 +202,15 @@ void doReplacePartition( PartitionCoreModule* core, Device* dev, Partition* partition ) { cDebug() << "doReplacePartition for device" << partition->partitionPath(); - Partition* newPartition = KPMHelpers::createNewPartition( - partition->parent(), - *dev, - partition->roles(), - FileSystem::Ext4, - partition->firstSector(), - partition->lastSector() ); - PartitionInfo::setMountPoint( newPartition, "/" ); - PartitionInfo::setFormat( newPartition, true ); - - core->deletePartition( dev, partition ); - core->createPartition( dev, newPartition ); + + //HACK: setFileSystem is private in Partition for whatever reason, making the clone + // with new type feature in FSF unusable outside Partition and friends. + // Dragons be here. + FileSystem* innerFs = (FileSystem*)( &( partition->fileSystem() ) ); + innerFs = FileSystemFactory::cloneWithNewType( FileSystem::Ext4, partition->fileSystem() ); + PartitionInfo::setMountPoint( partition, "/" ); + PartitionInfo::setFormat( partition, true ); + core->formatPartition( dev, partition ); core->dumpQueue(); }