diff -r 345b1ca54e88 -r 039a3e647356 userlibandfileserver/fileserver/sfile/sf_request.cpp --- 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() //