[haiku-commits] BRANCH pdziepak-github.nfs4 - src/add-ons/kernel/file_systems/nfs4

  • From: pdziepak-github.nfs4 <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 8 Jan 2013 22:15:56 +0100 (CET)

added 2 changesets to branch 'refs/remotes/pdziepak-github/nfs4'
old head: d710e73de5d2f71b51133bb0e2e36113595d7945
new head: bd19f23cecd6d1d73affbcd0c71fa1275eb17b73
overview: https://github.com/pdziepak/Haiku/compare/d710e73...bd19f23

----------------------------------------------------------------------------

fea92e7: nfs4: Save open mode in case of open reclaimation

bd19f23: nfs4: Fix connection recovery code

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

----------------------------------------------------------------------------

3 files changed, 6 insertions(+), 4 deletions(-)
src/add-ons/kernel/file_systems/nfs4/InodeRegular.cpp | 2 ++
src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp   | 2 +-
src/add-ons/kernel/file_systems/nfs4/RPCServer.cpp    | 6 +++---

############################################################################

Commit:      fea92e7bb3529b87f2cdce45448892644b1fa2fc
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Tue Jan  8 17:57:14 2013 UTC

nfs4: Save open mode in case of open reclaimation

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/nfs4/InodeRegular.cpp 
b/src/add-ons/kernel/file_systems/nfs4/InodeRegular.cpp
index 7533b86..6c9d0a7 100644
--- a/src/add-ons/kernel/file_systems/nfs4/InodeRegular.cpp
+++ b/src/add-ons/kernel/file_systems/nfs4/InodeRegular.cpp
@@ -59,6 +59,7 @@ Inode::CreateState(const char* name, int mode, int perms, 
OpenState* state,
 
        state->fFileSystem = fFileSystem;
        state->fInfo = fi;
+       state->fMode = mode & O_RWMASK;
 
        return B_OK;
 }
@@ -117,6 +118,7 @@ Inode::Open(int mode, OpenFileCookie* cookie)
 
                state->fInfo = fInfo;
                state->fFileSystem = fFileSystem;
+               state->fMode = mode & O_RWMASK;
                status_t result = OpenFile(state, mode, &data);
                if (result != B_OK)
                        return result;

############################################################################

Commit:      bd19f23cecd6d1d73affbcd0c71fa1275eb17b73
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Tue Jan  8 19:07:56 2013 UTC

nfs4: Fix connection recovery code

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp 
b/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp
index c9b0867..e92ede7 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 1b7ac54..f80633e 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;


Other related posts: