diff -r ff5437e4337c -r 48e57fb1237e userlibandfileserver/fileserver/sfile/sf_file.cpp --- a/userlibandfileserver/fileserver/sfile/sf_file.cpp Wed Oct 06 17:13:14 2010 +0100 +++ b/userlibandfileserver/fileserver/sfile/sf_file.cpp Mon Oct 11 17:54:41 2010 +0100 @@ -2772,22 +2772,6 @@ iFile->Close(); } -void CFileShare::Close() - { - - // Flush the write cache before closing the file share - // NB If there is any dirty data, then a new request will be allocated which will increase - // the reference count on this file share, thus preventing it from being deleted untill all - // data has been flushed - if (AccessCount() == 1) - { - CFileCache* fileCache = File().FileCache(); - if (fileCache) - fileCache->FlushDirty(); - } - - CFsDispatchObject::Close(); - } /** @@ -3267,8 +3251,8 @@ { ASSERT(NoOfClamps() == 0); drive.SetClampFlag(EFalse); - if (drive.DismountDeferred()) - r = drive.DeferredDismount(); + // dismount now if no clients waiting... + r = drive.DeferredDismountCheck(); } return r;