diff -r b73a2e62868f -r 6dfc5f825351 metadataengine/server/src/mdsdiskspacenotifier.cpp --- 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; }