userlibandfileserver/fileserver/inc/f32fsys.h
changeset 286 48e57fb1237e
parent 273 6a75fa55495f
child 299 b5a01337d018
--- 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);