X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fvfs%2Fnodecache.c;h=d2796c1b9d3420d5edb737d739bcee72867a0f63;hb=5f2024e5977e0cca0993a20dad5ab794c94d5711;hp=a898d5d6ebf131a4ad538d4fd7b6d983782b5357;hpb=d46fe712d92551c0084346e6d2627a13f0d45df0;p=tpg%2Facess2.git diff --git a/Kernel/vfs/nodecache.c b/Kernel/vfs/nodecache.c index a898d5d6..d2796c1b 100644 --- a/Kernel/vfs/nodecache.c +++ b/Kernel/vfs/nodecache.c @@ -23,7 +23,7 @@ tInodeCache *Inode_int_GetFSCache(int Handle); // === GLOBALS === int gVFS_NextInodeHandle = 1; - int gilVFS_InodeCache = 0; +tShortSpinlock glVFS_InodeCache; tInodeCache *gVFS_InodeCache = NULL; // === CODE === @@ -40,10 +40,10 @@ int Inode_GetHandle() ent->Next = NULL; ent->FirstNode = NULL; // Add to list - LOCK( &gilVFS_InodeCache ); + SHORTLOCK( &glVFS_InodeCache ); ent->Next = gVFS_InodeCache; gVFS_InodeCache = ent; - RELEASE( &gilVFS_InodeCache ); + SHORTREL( &glVFS_InodeCache ); return gVFS_NextInodeHandle-1; } @@ -178,8 +178,8 @@ void Inode_ClearCache(int Handle) ent->Node.ReferenceCount = 1; next = ent->Next; - if(ent->Node.Close) - ent->Node.Close( &ent->Node ); + if(ent->Node.Type && ent->Node.Type->Close) + ent->Node.Type->Close( &ent->Node ); free(ent); ent = next;