/* afs_call.c */
extern int afs_cold_shutdown;
extern char afs_rootVolumeName[MAXROOTVOLNAMELEN];
-extern void afs_shutdown(void);
extern void afs_FlushCBs(void);
extern int afs_CheckInit(void);
-extern void afs_shutdown(void);
+/* for afs_shutdown */
+enum afs_shutdown_type {
+ AFS_WARM = 0,
+ AFS_COLD = 1,
+};
+extern void afs_shutdown(enum afs_shutdown_type);
+
+
extern void shutdown_afstest(void);
extern int afs_syscall_call(long parm, long parm2, long parm3,
long parm4, long parm5, long parm6);
extern afs_int32 afs_connectBacks;
extern unsigned long lastCallBack_vnode;
extern unsigned int lastCallBack_dv;
-extern osi_timeval_t lastCallBack_time;
+extern osi_timeval32_t lastCallBack_time;
extern struct interfaceAddr afs_cb_interface;
extern int afs_RXCallBackServer(void);
extern void afs_StoreWarn(afs_int32 acode, afs_int32 avolume,
afs_int32 aflags);
extern void afs_MaybeWakeupTruncateDaemon(void);
+extern void afs_MaybeWaitForCacheDrain(void);
extern void afs_CacheTruncateDaemon(void);
extern void afs_AdjustSize(struct dcache *adc,
afs_int32 newSize);
int noLock);
extern void afs_PopulateDCache(struct vcache *avc, afs_size_t apos,
struct vrequest *areq);
+extern int afs_IsDCacheFresh(struct dcache *adc, struct vcache *avc);
/* afs_disconnected.c */
char *aname);
extern int afs_DynrootVOPSymlink(struct vcache *avc, afs_ucred_t *acred,
char *aname, char *atargetName);
+extern void shutdown_dynroot(void);
/* afs_error.c */
extern void init_et_to_sys_error(void);
extern int afs_icl_CopyOut(struct afs_icl_log *logp,
afs_int32 * bufferp, afs_int32 * bufSizep,
afs_uint32 * cookiep, afs_int32 * flagsp);
-extern int afs_icl_GetLogParms(struct afs_icl_log *logp, afs_int32 * maxSizep,
- afs_int32 * curSizep);
extern int afs_icl_LogHold(struct afs_icl_log *logp);
-extern int afs_icl_LogHoldNL(struct afs_icl_log *logp);
extern int afs_icl_LogUse(struct afs_icl_log *logp);
extern int afs_icl_LogFreeUse(struct afs_icl_log *logp);
extern int afs_icl_LogSetSize(struct afs_icl_log *logp,
extern int afs_icl_ZeroLog(struct afs_icl_log *logp);
extern int afs_icl_LogFree(struct afs_icl_log *logp);
extern struct afs_icl_log *afs_icl_FindLog(char *name);
-extern int
- afs_icl_EnumerateLogs(int (*aproc)
-
- (char *name, char *arock, struct afs_icl_log * tp),
- char *arock);
extern int afs_icl_CreateSet(char *name, struct afs_icl_log *baseLogp,
struct afs_icl_log *fatalLogp,
struct afs_icl_set **outSetpp);
struct afs_icl_log *fatalLogp,
afs_uint32 flags,
struct afs_icl_set **outSetpp);
-extern int afs_icl_SetEnable(struct afs_icl_set *setp, afs_int32 eventID,
- int setValue);
-extern int afs_icl_GetEnable(struct afs_icl_set *setp, afs_int32 eventID,
- int *getValuep);
extern int afs_icl_ZeroSet(struct afs_icl_set *setp);
-extern int
- afs_icl_EnumerateSets(int (*aproc)
-
- (char *name, char *arock, struct afs_icl_log * tp),
- char *arock);
-extern int afs_icl_AddLogToSet(struct afs_icl_set *setp,
- struct afs_icl_log *newlogp);
extern int afs_icl_SetSetStat(struct afs_icl_set *setp, int op);
extern int afs_icl_SetHold(struct afs_icl_set *setp);
extern int afs_icl_ZapSet(struct afs_icl_set *setp);
extern void shutdown_osi(void);
extern void shutdown_osinet(void);
extern void shutdown_osisleep(void);
-extern int afs_osi_suser(void *credp);
+extern int afs_osi_suser(afs_ucred_t *credp);
extern void afs_osi_TraverseProcTable(void);
#if defined(KERNEL) && !defined(UKERNEL)
extern const afs_ucred_t *afs_osi_proc2cred(afs_proc_t * pr);
extern void osi_FlushPages(struct vcache *avc,
afs_ucred_t *credp);
extern void osi_FlushText_really(struct vcache *vp);
-extern int osi_VMDirty_p(struct vcache *avc);
#ifndef UKERNEL
extern void osi_ReleaseVM(struct vcache *avc, afs_ucred_t *acred);
#endif
extern void osi_linux_free_inode_pages(void);
#endif
extern void osi_linux_mask(void);
-extern void osi_linux_unmask(void);
+extern void osi_linux_unmaskrxk(void);
extern int setpag(cred_t ** cr, afs_uint32 pagvalue, afs_uint32 * newpag,
int change_parent);
#endif
/* afs_segments.c */
extern int afs_StoreAllSegments(struct vcache *avc,
struct vrequest *areq, int sync);
-extern int afs_InvalidateAllSegments(struct vcache *avc);
+extern void afs_InvalidateAllSegments(struct vcache *avc);
+extern int afs_InvalidateAllSegments_once(struct vcache *avc);
extern int afs_ExtendSegments(struct vcache *avc,
afs_size_t alen, struct vrequest *areq);
extern int afs_TruncateAllSegments(struct vcache *avc,
extern struct afs_stats_CMFullPerf afs_stats_cmfullperf;
extern afs_int32 afs_stats_XferSumBytes[AFS_STATS_NUM_FS_XFER_OPS];
extern void afs_InitStats(void);
-extern void afs_GetCMStat(char **ptr, unsigned *size);
-#ifndef AFS_NOSTATS
-extern void afs_AddToMean(struct afs_MeanStats *oldMean, afs_int32 newValue);
-#endif
+
+/* ARCH/osi_kstat.c */
+extern void afs_kstat_init(void);
+extern void afs_kstat_shutdown(void);
/* afs_syscall.c */
#ifdef AFS_DARWIN100_ENV
#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
#ifdef AFS_DARWIN100_ENV
extern int afs3_syscall(afs_proc_t *p, void *args, unsigned int *retval);
-#elif (defined(AFS_FBSD90_ENV) || defined(AFS_FBSD82_ENV)) && (__FreeBSD_version < 900044)
-/* afs3_syscall prototype is in sys/sysproto.h
- Yes, they put it in, then took it out again (renamed with a sys_ prefix) */
#elif defined(AFS_FBSD_ENV)
extern int afs3_syscall(struct thread *p, void *args);
#elif defined(AFS_NBSD50_ENV)
extern void uafs_Shutdown(void);
extern void osi_ReleaseVM(struct vcache *avc, int len,
afs_ucred_t *credp);
-extern int osi_GetTime(struct timeval *tv);
extern int iodone(struct usr_buf *bp);
extern int usr_ioctl(void);
extern int lookupname(char *fnamep, int segflg, int followlink,
extern void afs_warnall(char *fmt, ...)
AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
#endif
+extern void afs_WarnENOSPC(void);
/* afs_vcache.c */
extern int VCHash(struct VenusFid *fid);
extern int VCHashV(struct VenusFid *fid);
+extern int afs_VCacheStressed(void);
extern int afs_ShakeLooseVCaches(afs_int32 anumber);
extern afs_int32 afs_maxvcount;
extern afs_int32 afs_vcount;
extern void afs_InactiveVCache(struct vcache *avc, afs_ucred_t *acred);
extern struct vcache *afs_LookupVCache(struct VenusFid *afid,
struct vrequest *areq,
- afs_int32 * cached, struct vcache *adp,
+ struct vcache *adp,
char *aname);
extern void afs_FlushAllVCaches(void);
extern int afs_FlushVCache(struct vcache *avc, int *slept);
extern struct vcache *afs_GetRootVCache(struct VenusFid *afid,
struct vrequest *areq,
- afs_int32 * cached,
struct volume *tvolp);
extern struct vcache *afs_NewVCache(struct VenusFid *afid,
struct server *serverp);
struct server *serverp, int seq);
extern int afs_VerifyVCache2(struct vcache *avc, struct vrequest *areq);
extern struct vcache *afs_GetVCache(struct VenusFid *afid,
- struct vrequest *areq, afs_int32 * cached,
- struct vcache *avc);
+ struct vrequest *areq);
extern void afs_PutVCache(struct vcache *avc);
extern int afs_RefVCache(struct vcache *avc);