From 684d0a10368ef10ce0ad68ce09ecde8ca2d4bf12 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Tue, 26 Jun 2012 21:27:11 +0200 Subject: [PATCH] nfs4: Partial handling of NFS4ERR_LEASE_MOVED error --- src/add-ons/kernel/file_systems/nfs4/Inode.cpp | 5 +++++ src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/src/add-ons/kernel/file_systems/nfs4/Inode.cpp b/src/add-ons/kernel/file_systems/nfs4/Inode.cpp index f7c8b4a8d0..ab6c85bd0e 100644 --- a/src/add-ons/kernel/file_systems/nfs4/Inode.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/Inode.cpp @@ -1221,6 +1221,11 @@ Inode::_HandleErrors(uint32 nfs4Error, RPC::Server* serv, fFilesystem->Migrate(fHandle, serv); return true; + // lease has been moved, provoke server to return NFS4ERR_MOVED + case NFS4ERR_LEASE_MOVED: + Access(0); + return true; + default: return false; } diff --git a/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp b/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp index 7874a949a9..5a74bd94cb 100644 --- a/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/NFS4Server.cpp @@ -271,6 +271,7 @@ NFS4Server::_Renewal() if (request.Reply().NFS4Error() == NFS4ERR_STALE_CLIENTID) ServerRebooted(clientId); + // TODO: support NFS4ERR_LEASE_MOVED } return B_OK;