/*
- * AcessMicro VFS
+ * Acess2 VFS
* - Open, Close and ChDir
*/
-#define DEBUG 1
+#define DEBUG 0
#include <acess.h>
#include <mm_virt.h>
#include "vfs.h"
longestMount = mnt;
}
- // Sanity Check
- /*if(!longestMount) {
- Log("VFS_ParsePath - ERROR: No Root Node\n");
- return NULL;
- }*/
-
// Save to shorter variable
mnt = longestMount;
LEAVE('n');
return NULL;
}
- LOG("FindDir(%p, '%s')", curNode, pathEle);
+ LOG("FindDir{=%p}(%p, '%s')", curNode->FindDir, curNode, pathEle);
// Get Child Node
tmpNode = curNode->FindDir(curNode, pathEle);
LOG("tmpNode = %p", tmpNode);
- if(curNode->Close) curNode->Close(curNode);
+ if(curNode->Close) {
+ //LOG2("curNode->Close = %p", curNode->Close);
+ curNode->Close(curNode);
+ }
curNode = tmpNode;
// Error Check
retLength += nextSlash + 1;
}
+ if( !curNode->FindDir ) {
+ if(curNode->Close) curNode->Close(curNode);
+ if(TruePath) {
+ free(*TruePath);
+ *TruePath = NULL;
+ }
+ Log("FindDir fail on '%s'", Path);
+ LEAVE('n');
+ return NULL;
+ }
+
// Get last node
LOG("VFS_ParsePath: FindDir(%p, '%s')", curNode, &Path[ofs]);
tmpNode = curNode->FindDir(curNode, &Path[ofs]);