diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.cpp index 1cb040bf91..e84b5abd24 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.cpp @@ -229,13 +229,18 @@ bool MemoryCardDriver_Linux::MountAndTestWrite( UsbStorageDevice* pDevice ) return true; } -void MemoryCardDriver_Linux::Unmount( UsbStorageDevice* pDevice ) +void MemoryCardDriver_Linux::Flush( UsbStorageDevice* pDevice ) { if( !pDevice->sOsMountDir.empty() ) return; + + // unmount and mount again. Is there a better way to flush? + // "sync" will only flush all file systems at the same time. -Chris CString sCommand = "umount " + pDevice->sOsMountDir; LOG->Trace( "executing '%s'", sCommand.c_str() ); system( sCommand ); + sCommand = "mount " + pDevice->sOsMountDir; + system( sCommand ); } /* diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.h b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.h index 5f73b1720c..c5ad65dda1 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.h +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Linux.h @@ -11,7 +11,7 @@ public: virtual bool StorageDevicesChanged(); virtual void GetStorageDevices( vector& vStorageDevicesOut ); virtual bool MountAndTestWrite( UsbStorageDevice* pDevice ); - virtual void Unmount( UsbStorageDevice* pDevice ); + virtual void Flush( UsbStorageDevice* pDevice ); protected: int m_fds; time_t m_lastModTime; diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Null.h b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Null.h index e7d49cd860..69e3397dd1 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriver_Null.h +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriver_Null.h @@ -10,7 +10,7 @@ public: virtual bool StorageDevicesChanged() { return false; }; virtual void GetStorageDevices( vector& vStorageDevicesOut ) {}; virtual bool MountAndTestWrite( UsbStorageDevice* pDevice ) { return false; }; - virtual void Unmount( UsbStorageDevice* pDevice ) {}; + virtual void Flush( UsbStorageDevice* pDevice ) {}; }; #endif