diff --git a/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp b/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp index 22a86ecfbc..402c642356 100644 --- a/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp @@ -30,14 +30,15 @@ FileInfo::ParsePath(RequestBuilder& req, uint32& count, const char* _path) if (pathEnd != NULL) *pathEnd = '\0'; - req.LookUp(pathStart); + if (pathEnd != pathStart) { + req.LookUp(pathStart); + count++; + } if (pathEnd != NULL && pathEnd[1] != '\0') pathStart = pathEnd + 1; else pathStart = NULL; - - count++; } free(path); diff --git a/src/add-ons/kernel/file_systems/nfs4/InodeDir.cpp b/src/add-ons/kernel/file_systems/nfs4/InodeDir.cpp index b4d1a9e0d8..08eb38b61d 100644 --- a/src/add-ons/kernel/file_systems/nfs4/InodeDir.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/InodeDir.cpp @@ -268,9 +268,8 @@ Inode::ReadDir(void* _buffer, uint32 size, uint32* _count, struct dirent* de = reinterpret_cast(buffer + pos); status_t result; - if (strcmp(fInfo.fName, "/")) - result = ReadDirUp(de, pos, size); - else { + result = ReadDirUp(de, pos, size); + if (result == B_ENTRY_NOT_FOUND) { result = FillDirEntry(de, FileIdToInoT(fInfo.fFileId), "..", pos, size); }