From b0ab9997c3256041087483c0840247821bfa55c8 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 3 Oct 2010 17:24:03 +0800 Subject: [PATCH] Debug, Debug, Debug --- Kernel/Makefile | 2 +- Kernel/vfs/open.c | 11 +++++++++++ Modules/Filesystems/FAT/fat.c | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Kernel/Makefile b/Kernel/Makefile index 8649d501..ec925729 100644 --- a/Kernel/Makefile +++ b/Kernel/Makefile @@ -62,7 +62,7 @@ apidoc: $(BIN): $(OBJ) $(MODS) arch/$(ARCHDIR)/link.ld Makefile @echo --- LD -o $(BIN) @$(LD) $(LDFLAGS) -o $(BIN) $(OBJ) $(MODS) -Map ../Map.$(ARCH).txt - $(DISASM) $(BIN) > $(BIN).dsm + $(DISASM) -S $(BIN) > $(BIN).dsm @wc -l $(SRCFILES) include/*.h > LineCounts.$(ARCH).txt @echo BUILD_NUM = $$(( $(BUILD_NUM) + 1 )) > Makefile.BuildNum.$(ARCH) @$(STRIP) $(BIN) diff --git a/Kernel/vfs/open.c b/Kernel/vfs/open.c index 0bca8cac..cc546f48 100644 --- a/Kernel/vfs/open.c +++ b/Kernel/vfs/open.c @@ -397,6 +397,17 @@ tVFS_Node *VFS_ParsePath(const char *Path, char **TruePath) 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]); diff --git a/Modules/Filesystems/FAT/fat.c b/Modules/Filesystems/FAT/fat.c index 5d1c7f53..a63bac01 100644 --- a/Modules/Filesystems/FAT/fat.c +++ b/Modules/Filesystems/FAT/fat.c @@ -941,6 +941,7 @@ tVFS_Node *FAT_int_CreateNode(tVFS_Node *Parent, fat_filetable *Entry, int Pos) tFAT_VolInfo *disk = Parent->ImplPtr; ENTER("pParent pFT", Parent, Entry); + LOG("disk = %p\n", disk); memset(&node, 0, sizeof(tVFS_Node)); -- 2.20.1