--- a/userlibandfileserver/fileserver/inc/f32fsys.h Wed Oct 06 17:13:14 2010 +0100
+++ b/userlibandfileserver/fileserver/inc/f32fsys.h Mon Oct 11 17:54:41 2010 +0100
@@ -251,7 +251,6 @@
IMPORT_C TName Name() const;
IMPORT_C virtual TBool IsCorrectThread();
inline CFsObjectCon* Container() const;
- inline TInt AccessCount() const;
protected:
void DoClose();
TInt UniqueID() const;
@@ -469,7 +468,11 @@
TInt DismountProxyDrive();
TInt ForceUnmountFileSystemForFormatting();
-public:
+ void DismountClientAdded();
+ void DismountClientRemoved();
+ TInt DismountClientCount();
+ TInt DeferredDismountCheck();
+
void DismountLock();
TInt DismountUnlock();
TInt DismountLocked() const;
@@ -518,7 +521,6 @@
IMPORT_C TBool IsMainThread() const;
IMPORT_C void DriveFault(TBool aDriveError) const;
void DoDismount();
- void DoCompleteDismountNotify(TInt aCompletionCode);
private:
@@ -526,7 +528,7 @@
enum
{
ENotifyOff = 0x01,
- EDismountDeferred= 0x02,
+ EDismountDeferred= 0x02, // Dismount initiated, waiting for clients to respond with EFsAllowDismount or files to become unclamped
ENotRugged = 0x04,
EClampPresent = 0x08,
EDriveIsSynch = 0x10, //-- is set on mount when the drive is synchronous (doesn't have its own thread)
@@ -550,9 +552,9 @@
TInt iDismountLock;
TInt iMountFailures; // number of times the mount has failed
TInt iLastMountError;
-
- TInt iSpare1;
- TInt iSpare2;
+
+ TInt iDismountClientCount; // number of EFsAllowDismount requests pending following a EFsDismountNotifyClients request
+ CFsInternalRequest* iDeferredDismountRequest;
friend class LocalDrives; // for access to iChanged flag
@@ -2039,9 +2041,6 @@
void InitL();
inline CFileCB& File();
- // override CFsDispatchObject::Close() so that we can flush dirty data
- void Close();
-
// For serialising aync requests
TBool RequestStart(CFsMessageRequest* aRequest);
void RequestEnd(CFsMessageRequest* aRequest);