userlibandfileserver/fileserver/sfile/sf_request.cpp
branchRCL_3
changeset 294 039a3e647356
parent 257 3e88ff8f41d5
--- a/userlibandfileserver/fileserver/sfile/sf_request.cpp	Wed Sep 15 13:42:27 2010 +0300
+++ b/userlibandfileserver/fileserver/sfile/sf_request.cpp	Wed Oct 13 16:04:24 2010 +0300
@@ -1116,9 +1116,7 @@
 		}
 
 	SetError(err);
-	
-    if (IsExpectedResult(err) && !IsPluginSpecific() && !IsNotifierSpecific())
-        DoNotifyDiskSpace(KErrNone);
+
 
 	// Start issuing the post-operation requests starting from the bottom of the chain
 	iCurrentPlugin = NULL;
@@ -1144,6 +1142,16 @@
 	{
 	__THRD_PRINT2(_L("----- CFsMessageRequest::Complete() req %08x with %d"), this, aError);
 
+	if (aError==KErrNoMemory)
+		{
+		if (iDrive)	// Not all message requests are associated with a drive!
+			{
+			TDriveInfo di;
+			iDrive->DriveInfo(di);
+			if (di.iType == EMediaRam)
+				aError = KErrNoMemory;
+			}
+		}
 	if(aError!=KErrNone)
 		{
 		if(iOperation->IsOpenSubSess())
@@ -1290,7 +1298,9 @@
 	if(aError==KErrNone)
 		{
 		if(!(FsNotify::IsChangeQueEmpty(driveNumber)))
-			FsNotify::HandleChange(this,driveNumber);
+			FsNotify::HandleChange(this,driveNumber);	
+		if ((driveNumber != KDriveInvalid) && !(FsNotify::IsDiskSpaceQueEmpty(driveNumber)))
+			FsNotify::HandleDiskSpace(this, DriveNumber());
 	
 #ifdef SYMBIAN_F32_ENHANCED_CHANGE_NOTIFICATION
 		if 	(iOperation->iFunction == EFsFileWrite)
@@ -1327,16 +1337,6 @@
 		}
 	}
 
-void CFsMessageRequest::DoNotifyDiskSpace(TInt aError)
-    {
-    __PRINT1(_L("----- CFsMessageRequest::DoNotifyDiskSpace() with %d"),aError);
-    if(aError != KErrNone)
-        return;
-
-    TInt driveNumber = DriveNumber();
-    if ((driveNumber != KDriveInvalid) && !(FsNotify::IsDiskSpaceQueEmpty(driveNumber)))
-        FsNotify::HandleDiskSpace(this, driveNumber);
-    }
 
 void CFsMessageRequest::Free()
 //