extern enum afs_shutdown_state afs_shuttingdown;
/*
+ * The string that we use for the "device" we mount /afs on. That is, we're not
+ * mounted on a drive like /dev/sda, but instead mounted on "afs".
+ */
+#define AFS_MOUNT_STR "afs"
+#ifndef MOUNT_AFS
+# define MOUNT_AFS AFS_MOUNT_STR
+#endif
+
+/*
* Macros to uniquely identify the AFS vfs struct
*/
#define AFS_VFSMAGIC 0x1234
-#if defined(AFS_SUN5_ENV) || defined(AFS_HPUX90_ENV) || defined(AFS_LINUX20_ENV)
-#define AFS_VFSFSID 99
-#else
-#if defined(AFS_SGI_ENV)
-#define AFS_VFSFSID afs_fstype
+
+/*
+ * Define AFS_VFSFSID, an id number corresponding to the AFS filesystem. On
+ * Irix, this is stored in a global var (afs_fstype); everywhere else, we have
+ * a constant. If we have a platform-defined value for this, use it (AFS_FSNO);
+ * otherwise, we just make up an arbitrary value here (99).
+ */
+#ifdef AFS_SGI_ENV
+# define AFS_VFSFSID afs_fstype
+#elif defined(AFS_FSNO)
+# define AFS_VFSFSID AFS_FSNO
#else
-#define AFS_VFSFSID AFS_MOUNT_AFS
-#endif
+# define AFS_VFSFSID 99
#endif
+
/* use this value for reporting total space, free space, etc.
* fake a high number to satisfy programs that use the statfs call to make sure
* that there's enough space in the device partition before storing something
#define AFS_MAXCBRSCALL 32 /* max to return in a given call (must be <= AFSCBMAX) */
#define VCACHE_FREE 5
+#define VCACHE_DYNAMIC_STRESSED 10000
+#define VCACHE_STRESS_LOGINTERVAL (60*60*4) /* 4 hours */
#define AFS_NRXPACKETS 80
#define AFS_RXDEADTIME 50
#define AFS_HARDDEADTIME 120
avc->f.states |= CCore; /* causes close to be called later */ \
\
/* The cred and vnode holds will be released in afs_FlushActiveVcaches */ \
- AFS_FAST_HOLD(avc); /* So it won't disappear */ \
+ osi_Assert(osi_vnhold(avc) == 0); /* So it won't disappear */ \
CRKEEP(avc, acred); /* Should use a better place for the creds */ \
} \
else { \
extern afs_int32 afs_cacheFiles; /*Size of afs_indexTable */
extern afs_int32 afs_cacheBlocks; /*1K blocks in cache */
extern afs_int32 afs_cacheStats; /*Stat entries in cache */
+extern afs_int32 afs_freeDCCount; /*Count of elts in freeDCList */
+extern afs_uint32 afs_CacheTooFullCount;
+extern afs_uint32 afs_WaitForCacheDrainCount;
extern struct vcache *afs_vhashT[VCSIZE]; /*Stat cache hash table */
extern struct afs_q afs_vhashTV[VCSIZE]; /* cache hash table on volume */
extern afs_int32 afs_initState; /*Initialization state */