userlibandfileserver/fileserver/sfile/sf_thread.cpp
branchRCL_3
changeset 294 039a3e647356
parent 268 345b1ca54e88
--- 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)