From bd19f23cecd6d1d73affbcd0c71fa1275eb17b73 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Tue, 8 Jan 2013 20:07:56 +0100 Subject: [PATCH] nfs4: Fix connection recovery code --- src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp | 2 +- src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp b/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp index c9b0867b2b..e92ede74ba 100644 --- a/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp @@ -243,7 +243,7 @@ NFS4Server::_Renewal() } Request request(fServer, NULL); - request.Builder().Renew(fClientId); + request.Builder().Renew(clientId); request.Send(); switch (request.Reply().NFS4Error()) { diff --git a/src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp b/src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp index 1b7ac54de5..f80633e906 100644 --- a/src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp @@ -141,7 +141,7 @@ Server::SendCallAsync(Call* call, Reply** reply, Request** request) ASSERT(reply != NULL); ASSERT(request != NULL); - if (fThreadError != B_OK) + if (fThreadError != B_OK && Repair() != B_OK) return fThreadError; Request* req = new(std::nothrow) Request; @@ -170,7 +170,7 @@ Server::ResendCallAsync(Call* call, Request* request) ASSERT(call != NULL); ASSERT(request != NULL); - if (fThreadError != B_OK) { + if (fThreadError != B_OK && Repair() != B_OK) { fRequests.FindRequest(request->fXID); delete request; return fThreadError; @@ -212,7 +212,7 @@ Server::Repair() uint32 thisRepair = fRepairCount; MutexLocker _(fRepairLock); - if (fRepairCount == thisRepair) + if (fRepairCount != thisRepair) return B_OK; fThreadCancel = true;