diff -r 4122176ea935 -r 56f325a607ea userlibandfileserver/fileserver/sfile/sf_notifier_handlers.cpp --- a/userlibandfileserver/fileserver/sfile/sf_notifier_handlers.cpp Mon Dec 21 16:14:42 2009 +0000 +++ b/userlibandfileserver/fileserver/sfile/sf_notifier_handlers.cpp Wed Dec 23 11:43:31 2009 +0000 @@ -147,19 +147,21 @@ if(status!=CFsNotifyRequest::EOutstandingOverflow) { notifyRequest->SetActive(CFsNotifyRequest::EActive); - - // DEF140387: - // If this is not the first call to RequestNotifications then if the - // user just got an overflow notification (and requested again) - // then its possible that iClientTail is not zero now. - - // We should set iClientHead to iClientTail, otherwise the client - // can receive another overflow straight away. - notifyRequest->iClientHead = notifyRequest->iClientTail; + // RDebug::Print(_L("TFsNotificationRequest::DoRequestL Not-OutOver- iClientHead==%d, iClientTail==%d"),notifyRequest->iClientHead,notifyRequest->iClientTail); } else { notifyRequest->SetActive(CFsNotifyRequest::EInactive); + + // RDebug::Print(_L("TFsNotificationRequest::DoRequestL OutOver- iClientHead==%d, iClientTail==%d"),notifyRequest->iClientHead,notifyRequest->iClientTail); + + // If the user is in OutstandingOverflow notification state, + // then we can set iClientHead to be equal to iServerTail now. + // That way if the client requests again and the state will go + // back to active, the server will see that buffer as empty + // rather than full/overflow. + + notifyRequest->iClientHead = notifyRequest->iClientTail; } FsNotificationManager::Unlock(); return r;