From 02a6453b7530db16724e047d7a9fba71b40de455 Mon Sep 17 00:00:00 2001 From: Dees Troy Date: Wed, 19 Mar 2014 15:23:32 +0000 Subject: Re-arrange handling of settings storage partition Sometimes we received an error about being unable to locate storage partition because the DataManager would attempt to access the PartitionManager before we finished adding the storage partitions to the vector. Change-Id: I0ce1778938d308b1eb17de46a192ecd52489cad3 --- partitionmanager.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/partitionmanager.cpp b/partitionmanager.cpp index 73e22852d..f094734c4 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -56,7 +56,7 @@ TWPartitionManager::TWPartitionManager(void) { int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) { FILE *fstabFile; char fstab_line[MAX_FSTAB_LINE_LENGTH]; - bool Found_Settings_Storage = false; + TWPartition* settings_partition = NULL; fstabFile = fopen(Fstab_Filename.c_str(), "rt"); if (fstabFile == NULL) { @@ -76,9 +76,8 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) memset(fstab_line, 0, sizeof(fstab_line)); if (partition->Process_Fstab_Line(line, Display_Error)) { - if (!Found_Settings_Storage && partition->Is_Settings_Storage) { - Found_Settings_Storage = true; - Setup_Settings_Storage_Partition(partition); + if (!settings_partition && partition->Is_Settings_Storage) { + settings_partition = partition; } else { partition->Is_Settings_Storage = false; } @@ -88,15 +87,15 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) } } fclose(fstabFile); - if (!Found_Settings_Storage) { + if (!settings_partition) { std::vector::iterator iter; for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { if ((*iter)->Is_Storage) { - Setup_Settings_Storage_Partition((*iter)); + settings_partition = (*iter); break; } } - if (!Found_Settings_Storage) + if (!settings_partition) LOGERR("Unable to locate storage partition for storing settings file.\n"); } if (!Write_Fstab()) { @@ -107,6 +106,7 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) } Update_System_Details(); UnMount_Main_Partitions(); + Setup_Settings_Storage_Partition(settings_partition); return true; } -- cgit v1.2.3