From ef629eaf23e52f315956c45fffe368a244ccb379 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Wed, 27 Jun 2012 23:04:54 +0200 Subject: [PATCH] nfs4: Fix LookUp returning wrong error code if file doesn't exist --- src/add-ons/kernel/file_systems/nfs4/Inode.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/nfs4/Inode.cpp b/src/add-ons/kernel/file_systems/nfs4/Inode.cpp index 2f589eb675..1eb880e98e 100644 --- a/src/add-ons/kernel/file_systems/nfs4/Inode.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/Inode.cpp @@ -135,9 +135,11 @@ Inode::LookUp(const char* name, ino_t* id) reply.PutFH(); if (!strcmp(name, "..")) - reply.LookUpUp(); + result = reply.LookUpUp(); else - reply.LookUp(); + result = reply.LookUp(); + if (result != B_OK) + return result; Filehandle fh; reply.GetFH(&fh); @@ -262,7 +264,9 @@ Inode::Remove(const char* name, FileType type) continue; reply.PutFH(); - reply.LookUp(); + result = reply.LookUp(); + if (result != B_OK) + return result; if (type == NF4DIR) result = reply.Verify(); @@ -1168,7 +1172,9 @@ Inode::_ReadDirUp(struct dirent* de, uint32 pos, uint32 size) continue; reply.PutFH(); - reply.LookUpUp(); + result = reply.LookUpUp(); + if (result != B_OK) + return result; Filehandle fh; reply.GetFH(&fh);