Fix error handling in ChangeFilesystemLabelJob

This commit is contained in:
shainer 2016-08-13 12:14:48 +01:00 committed by Adriaan de Groot
parent c035029f38
commit 1007680931

View File

@ -60,17 +60,15 @@ ChangeFilesystemLabelJob::exec()
return Calamares::JobResult::ok(); return Calamares::JobResult::ok();
} }
Report report( nullptr );
CoreBackend* backend = CoreBackendManager::self()->backend(); CoreBackend* backend = CoreBackendManager::self()->backend();
QString errorMessage = tr( "The installer failed to set flags on partition %1." )
.arg( m_partition->partitionPath() );
QScopedPointer< CoreBackendDevice > backendDevice( backend->openDevice( m_device->deviceNode() ) ); QScopedPointer< CoreBackendDevice > backendDevice( backend->openDevice( m_device->deviceNode() ) );
if ( !backendDevice.data() ) if ( !backendDevice.data() )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
errorMessage, tr( "Could not open device '%1'." ).arg( m_device->deviceNode() ),
tr( "Could not open device '%1'." ).arg( m_device->deviceNode() ) report.toText()
); );
} }
@ -78,8 +76,8 @@ ChangeFilesystemLabelJob::exec()
if ( !backendPartitionTable.data() ) if ( !backendPartitionTable.data() )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
errorMessage, tr( "Could not open partition table on device '%1'." ).arg( m_device->deviceNode() ),
tr( "Could not open partition table on device '%1'." ).arg( m_device->deviceNode() ) report.toText()
); );
} }
@ -90,14 +88,22 @@ ChangeFilesystemLabelJob::exec()
); );
if ( !backendPartition.data() ) { if ( !backendPartition.data() ) {
return Calamares::JobResult::error( return Calamares::JobResult::error(
errorMessage, tr( "Could not find partition '%1'." ).arg( partition()->partitionPath() ),
tr( "Could not find partition '%1'." ).arg( partition()->partitionPath() ) report.toText()
); );
} }
FileSystem& fs = m_partition->fileSystem(); FileSystem& fs = m_partition->fileSystem();
fs.setLabel( m_label ); fs.setLabel( m_label );
if ( !backendPartitionTable->setPartitionSystemType( report, *m_partition ) )
{
return Calamares::JobResult::error(
tr( "The installer failed to update partition table on disk '%1'." ).arg( m_device->name() ),
report.toText()
);
}
backendPartitionTable->commit(); backendPartitionTable->commit();
return Calamares::JobResult::ok(); return Calamares::JobResult::ok();
} }