userlibandfileserver/fileserver/sfile/sf_thread.cpp
branchRCL_3
changeset 294 039a3e647356
parent 268 345b1ca54e88
equal deleted inserted replaced
268:345b1ca54e88 294:039a3e647356
   856 	CDriveThread& self = *(CDriveThread*)aSelfP;
   856 	CDriveThread& self = *(CDriveThread*)aSelfP;
   857 
   857 
   858 	TDrive& drive = TheDrives[self.iDriveNumber];
   858 	TDrive& drive = TheDrives[self.iDriveNumber];
   859 	if(drive.IsMounted())
   859 	if(drive.IsMounted())
   860         {
   860         {
   861         (void)drive.FinaliseMount(RFs::EFinal_RW);
   861         if (drive.CurrentMount().LockStatus() == 0)
       
   862             {
       
   863             // Ignore the error here, as there's nothing we can do about it...
       
   864             (void)drive.FinaliseMount(RFs::EFinal_RW);
       
   865             }
       
   866         else
       
   867             {
       
   868             self.StartFinalisationTimer();
       
   869             }
   862         }
   870         }
   863 
   871 
   864 	return KErrNone;
   872 	return KErrNone;
   865 	}
   873 	}
   866 
   874 
   919 
   927 
   920 CPluginThread::CPluginThread(CFsPlugin& aPlugin)
   928 CPluginThread::CPluginThread(CFsPlugin& aPlugin)
   921   : iPlugin(aPlugin)
   929   : iPlugin(aPlugin)
   922 	{
   930 	{
   923 	/** @prototype */
   931 	/** @prototype */
       
   932 	iOperationLock.Close();
   924 	iPlugin.Open();
   933 	iPlugin.Open();
   925 	}
   934 	}
   926 
   935 
   927 CPluginThread::~CPluginThread()
   936 CPluginThread::~CPluginThread()
   928 	{
   937     {
   929 	iPlugin.Close();
   938     iPlugin.Close();
   930 	iOperationLock.Close();
   939     }
   931 	}
       
   932 
   940 
   933 
   941 
   934 CPluginThread* CPluginThread::NewL(CFsPlugin& aPlugin)
   942 CPluginThread* CPluginThread::NewL(CFsPlugin& aPlugin)
   935 	{
   943 	{
   936 	__PRINT(_L("CPluginThread::NewL()"));
   944 	__PRINT(_L("CPluginThread::NewL()"));