From 8092249d0d224be166fb05e78daa4bf4801a2890 Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Sat, 28 Dec 2002 05:17:08 +0000 Subject: [PATCH] Avoid using afs_int64's, because this leads to gcc generating calls to libgcc functions on Linux (which we don't have in the kernel). Instead be slightly more clever to achieve the same result. --- src/afs/afs_dcache.c | 7 +------ src/afs/afs_memcache.c | 4 ++-- src/afs/afs_prototypes.h | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/afs/afs_dcache.c b/src/afs/afs_dcache.c index addeb2237..12757964b 100644 --- a/src/afs/afs_dcache.c +++ b/src/afs/afs_dcache.c @@ -3062,17 +3062,12 @@ void afs_dcacheInit(int afiles, int ablocks, int aDentries, int achunk, /* * Use a memory cache instead of a disk cache */ - afs_int64 cachebytes; - cacheDiskType = AFS_FCACHE_TYPE_MEM; afs_cacheType = &afs_MemCacheOps; afiles = (afiles < aDentries) ? afiles : aDentries; /* min */ ablocks = afiles * (AFS_FIRSTCSIZE/1024); /* ablocks is reported in 1K blocks */ - - cachebytes = afiles; - cachebytes *= AFS_FIRSTCSIZE; - code = afs_InitMemCache(cachebytes, AFS_FIRSTCSIZE, aflags); + code = afs_InitMemCache(afiles, AFS_FIRSTCSIZE, aflags); if (code != 0) { printf("afsd: memory cache too large for available memory.\n"); printf("afsd: AFS files cannot be accessed.\n\n"); diff --git a/src/afs/afs_memcache.c b/src/afs/afs_memcache.c index a94c8d4e5..bbde69d91 100644 --- a/src/afs/afs_memcache.c +++ b/src/afs/afs_memcache.c @@ -34,7 +34,7 @@ static int memAllocMaySleep = 0; extern int cacheDiskType; -int afs_InitMemCache(afs_int64 size, int blkSize, int flags) +int afs_InitMemCache(int blkCount, int blkSize, int flags) { int index; @@ -42,7 +42,7 @@ int afs_InitMemCache(afs_int64 size, int blkSize, int flags) if(blkSize) memCacheBlkSize = blkSize; - memMaxBlkNumber = size / memCacheBlkSize; + memMaxBlkNumber = blkCount; memCache = (struct memCacheEntry *) afs_osi_Alloc(memMaxBlkNumber * sizeof(struct memCacheEntry)); if (flags & AFSCALL_INIT_MEMCACHE_SLEEP) { diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h index cf9657629..267f849bd 100644 --- a/src/afs/afs_prototypes.h +++ b/src/afs/afs_prototypes.h @@ -352,7 +352,7 @@ extern void shutdown_mariner(void); /* afs_memcache.c */ -extern int afs_InitMemCache(afs_int64 size, int blkSize, int flags); +extern int afs_InitMemCache(int blkCount, int blkSize, int flags); extern int afs_MemCacheClose(char *file); extern void *afs_MemCacheOpen(ino_t blkno); extern int afs_MemReadBlk(register struct memCacheEntry *mceP, int offset, char *dest, int size); -- 2.39.5