X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fvfs%2Fio.c;h=dacf720ee3e9e14b5cb8b0da07c67d4982efbb02;hb=bd5e8623e509a443d7d6e1b959b79f85b0c285b7;hp=e7a2a0684370171cbbe3d1ec1889887cfd2ce2bc;hpb=48743e39650eb1ef988380e9d95f27fd40d3a9ce;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/vfs/io.c b/KernelLand/Kernel/vfs/io.c index e7a2a068..dacf720e 100644 --- a/KernelLand/Kernel/vfs/io.c +++ b/KernelLand/Kernel/vfs/io.c @@ -20,12 +20,24 @@ Uint64 VFS_Read(int FD, Uint64 Length, void *Buffer) ENTER("iFD XLength pBuffer", FD, Length, Buffer); h = VFS_GetHandle(FD); - if(!h) LEAVE_RET('i', -1); + if(!h) { + LOG("Bad Handle"); + LEAVE_RET('i', -1); + } - if( !(h->Mode & VFS_OPENFLAG_READ) || h->Node->Flags & VFS_FFLAG_DIRECTORY ) + if( !(h->Mode & VFS_OPENFLAG_READ) ) { + LOG("Bad mode"); + LEAVE_RET('i', -1); + } + if( (h->Node->Flags & VFS_FFLAG_DIRECTORY) ) { + LOG("Reading directory"); LEAVE_RET('i', -1); + } - if(!h->Node->Type || !h->Node->Type->Read) LEAVE_RET('i', 0); + if(!h->Node->Type || !h->Node->Type->Read) { + LOG("No read method"); + LEAVE_RET('i', -1); + } ret = h->Node->Type->Read(h->Node, h->Position, Length, Buffer); if(ret == -1) LEAVE_RET('i', -1);