From 462a54ced847bd3550591ca74ae25143d0444e77 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Wed, 13 Jun 2012 19:38:28 +0200 Subject: [PATCH] nfs4: Let ReplyInterpreter provide original NFS4 error codes --- .../kernel/file_systems/nfs4/ReplyInterpreter.cpp | 3 ++- .../kernel/file_systems/nfs4/ReplyInterpreter.h | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.cpp b/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.cpp index f7b62600d0..756e7239a5 100644 --- a/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.cpp @@ -46,6 +46,7 @@ DirEntry::~DirEntry() ReplyInterpreter::ReplyInterpreter(RPC::Reply* reply) : + fNFS4Error(NFS4_OK), fReply(reply) { if (reply != NULL) @@ -62,7 +63,7 @@ ReplyInterpreter::~ReplyInterpreter() void ReplyInterpreter::_ParseHeader() { - fReply->Stream().GetUInt(); + fNFS4Error = fReply->Stream().GetUInt(); fReply->Stream().GetOpaque(NULL); fReply->Stream().GetUInt(); } diff --git a/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.h b/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.h index 4e8ae6e4f6..b3f0901ece 100644 --- a/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.h +++ b/src/add-ons/kernel/file_systems/nfs4/ReplyInterpreter.h @@ -45,6 +45,8 @@ public: inline status_t SetTo(RPC::Reply* reply); inline void Reset(); + inline uint32 NFS4Error(); + status_t Access(uint32* supported, uint32* allowed); status_t Close(); status_t GetAttr(AttrValue** attrs, uint32* count); @@ -72,6 +74,7 @@ private: static status_t _NFS4ErrorToHaiku(uint32 x); + uint32 fNFS4Error; RPC::Reply* fReply; }; @@ -99,6 +102,13 @@ ReplyInterpreter::Reset() } +inline uint32 +ReplyInterpreter::NFS4Error() +{ + return fNFS4Error; +} + + inline status_t ReplyInterpreter::LookUp() {