+ tFAT_LFNCache *cache;\r
+ int i, firstFree;\r
+ \r
+ Mutex_Acquire( &Node->Lock );\r
+ \r
+ // TODO: Thread Safety (Lock things)\r
+ cache = Node->Data;\r
+ \r
+ // Create a cache if it isn't there\r
+ if(!cache) {\r
+ cache = Node->Data = malloc( sizeof(tFAT_LFNCache) + sizeof(tFAT_LFNCacheEnt) );\r
+ cache->NumEntries = 1;\r
+ cache->Entries[0].ID = ID;\r
+ cache->Entries[0].Data[0] = '\0';\r
+ Mutex_Release( &Node->Lock );\r
+ //Log_Debug("FAT", "Return = %p (new)", cache->Entries[0].Data);\r
+ return cache->Entries[0].Data;\r
+ }\r
+ \r
+ // Scan for this entry\r
+ firstFree = -1;\r
+ for( i = 0; i < cache->NumEntries; i++ )\r