From e422d059c8b56324f663ad5d2f611cfa109643e8 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Fri, 17 Aug 2012 03:32:57 +0200 Subject: [PATCH] nfs4: Properly handle NFS4ERR_DELAY during node rename --- src/add-ons/kernel/file_systems/nfs4/NFS4Inode.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/add-ons/kernel/file_systems/nfs4/NFS4Inode.cpp b/src/add-ons/kernel/file_systems/nfs4/NFS4Inode.cpp index fa50569be9..dd590085fa 100644 --- a/src/add-ons/kernel/file_systems/nfs4/NFS4Inode.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/NFS4Inode.cpp @@ -374,6 +374,12 @@ NFS4Inode::RenameNode(Inode* from, Inode* to, const char* fromName, continue; } + // need to wait + if (reply.NFS4Error() == NFS4ERR_DELAY) { + snooze_etc(sSecToBigTime(5), B_SYSTEM_TIMEBASE, B_RELATIVE_TIMEOUT); + continue; + } + reply.PutFH(); reply.SaveFH(); reply.PutFH();