--- a/metadataengine/server/src/mdsdiskspacenotifier.cpp Tue Feb 02 00:24:33 2010 +0200
+++ b/metadataengine/server/src/mdsdiskspacenotifier.cpp Fri Mar 19 09:38:01 2010 +0200
@@ -57,7 +57,12 @@
switch( status )
{
case KErrNone:
- iFileServerSession.Volume( volumeInfo, iDrive );
+ const TInt error = iFileServerSession.Volume( volumeInfo, iDrive );
+ if( error != KErrNone )
+ {
+ StartNotifier();
+ break;
+ }
// Check if free space is less than threshold level
if( volumeInfo.iFree < iThreshold )
@@ -89,8 +94,15 @@
else if ( iState == CMdSDiskSpaceNotifierAO::EIterate )
{
const TInt KMaxIterations = 10;
-
- iFileServerSession.Volume( volumeInfo, iDrive );
+ TInt error = iFileServerSession.Volume( volumeInfo, iDrive );
+ if( error != KErrNone )
+ {
+ iState = ENormal;
+ iIterationCount = 0;
+ StartNotifier();
+ return;
+ }
+
if ( volumeInfo.iFree < iThreshold )
{
iObserver.HandleDiskSpaceNotificationL( MMdSDiskSpaceNotifierObserver::ELess );
@@ -104,7 +116,14 @@
}
else
{
- iFileServerSession.Volume( volumeInfo, iDrive );
+ error = iFileServerSession.Volume( volumeInfo, iDrive );
+ if( error != KErrNone )
+ {
+ iState = ENormal;
+ iIterationCount = 0;
+ StartNotifier();
+ return;
+ }
if ( volumeInfo.iFree >= iThreshold )
{
iDiskFull = EFalse;
@@ -155,8 +174,8 @@
User::LeaveIfError( iFileServerSession.Connect( KMessageSlotCount ) );
TVolumeInfo volumeInfo;
- iFileServerSession.Volume( volumeInfo, iDrive );
- if ( volumeInfo.iFree < iThreshold )
+ const TInt error = iFileServerSession.Volume( volumeInfo, iDrive );
+ if ( (error != KErrNone) || volumeInfo.iFree < iThreshold )
{
iDiskFull = ETrue;
}