- ret = h->Node->Type->Read(h->Node, Offset, Length, Buffer);
- if(ret == -1) return -1;
+
+ if( !MM_GetPhysAddr(h->Node->Type->Read) ) {
+ Log_Error("VFS", "Node type %p(%s) read method is junk %p",
+ h->Node->Type, h->Node->Type->TypeName,
+ h->Node->Type->Read);
+ }
+
+ Uint flags = 0;
+ flags |= (h->Mode & VFS_OPENFLAG_NONBLOCK) ? VFS_IOFLAG_NOBLOCK : 0;
+ ret = h->Node->Type->Read(h->Node, Offset, Length, Buffer, flags);
+ if(ret != Length) LOG("%i/%i read", ret, Length);
+ if(ret == (size_t)-1) return -1;