diff -r 0ffb4e86fcc9 -r a179b74831c9 userlibandfileserver/fileserver/sfile/sf_request.cpp --- a/userlibandfileserver/fileserver/sfile/sf_request.cpp Thu Jul 15 20:11:42 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_request.cpp Thu Aug 19 11:14:22 2010 +0300 @@ -1116,7 +1116,9 @@ } SetError(err); - + + if (IsExpectedResult(err) && !IsPluginSpecific() && !IsNotifierSpecific()) + DoNotifyDiskSpace(KErrNone); // Start issuing the post-operation requests starting from the bottom of the chain iCurrentPlugin = NULL; @@ -1142,16 +1144,6 @@ { __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()) @@ -1298,9 +1290,7 @@ if(aError==KErrNone) { if(!(FsNotify::IsChangeQueEmpty(driveNumber))) - FsNotify::HandleChange(this,driveNumber); - if ((driveNumber != KDriveInvalid) && !(FsNotify::IsDiskSpaceQueEmpty(driveNumber))) - FsNotify::HandleDiskSpace(this, DriveNumber()); + FsNotify::HandleChange(this,driveNumber); #ifdef SYMBIAN_F32_ENHANCED_CHANGE_NOTIFICATION if (iOperation->iFunction == EFsFileWrite) @@ -1337,6 +1327,16 @@ } } +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() //