diff -r 345b1ca54e88 -r 039a3e647356 userlibandfileserver/fileserver/sfile/sf_thread.cpp --- a/userlibandfileserver/fileserver/sfile/sf_thread.cpp Wed Sep 15 13:42:27 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_thread.cpp Wed Oct 13 16:04:24 2010 +0300 @@ -858,7 +858,15 @@ TDrive& drive = TheDrives[self.iDriveNumber]; if(drive.IsMounted()) { - (void)drive.FinaliseMount(RFs::EFinal_RW); + if (drive.CurrentMount().LockStatus() == 0) + { + // Ignore the error here, as there's nothing we can do about it... + (void)drive.FinaliseMount(RFs::EFinal_RW); + } + else + { + self.StartFinalisationTimer(); + } } return KErrNone; @@ -921,14 +929,14 @@ : iPlugin(aPlugin) { /** @prototype */ + iOperationLock.Close(); iPlugin.Open(); } CPluginThread::~CPluginThread() - { - iPlugin.Close(); - iOperationLock.Close(); - } + { + iPlugin.Close(); + } CPluginThread* CPluginThread::NewL(CFsPlugin& aPlugin)