nfs4: Fix connection recovery code
This commit is contained in:
@@ -243,7 +243,7 @@ NFS4Server::_Renewal()
|
|||||||
}
|
}
|
||||||
|
|
||||||
Request request(fServer, NULL);
|
Request request(fServer, NULL);
|
||||||
request.Builder().Renew(fClientId);
|
request.Builder().Renew(clientId);
|
||||||
request.Send();
|
request.Send();
|
||||||
|
|
||||||
switch (request.Reply().NFS4Error()) {
|
switch (request.Reply().NFS4Error()) {
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ Server::SendCallAsync(Call* call, Reply** reply, Request** request)
|
|||||||
ASSERT(reply != NULL);
|
ASSERT(reply != NULL);
|
||||||
ASSERT(request != NULL);
|
ASSERT(request != NULL);
|
||||||
|
|
||||||
if (fThreadError != B_OK)
|
if (fThreadError != B_OK && Repair() != B_OK)
|
||||||
return fThreadError;
|
return fThreadError;
|
||||||
|
|
||||||
Request* req = new(std::nothrow) Request;
|
Request* req = new(std::nothrow) Request;
|
||||||
@@ -170,7 +170,7 @@ Server::ResendCallAsync(Call* call, Request* request)
|
|||||||
ASSERT(call != NULL);
|
ASSERT(call != NULL);
|
||||||
ASSERT(request != NULL);
|
ASSERT(request != NULL);
|
||||||
|
|
||||||
if (fThreadError != B_OK) {
|
if (fThreadError != B_OK && Repair() != B_OK) {
|
||||||
fRequests.FindRequest(request->fXID);
|
fRequests.FindRequest(request->fXID);
|
||||||
delete request;
|
delete request;
|
||||||
return fThreadError;
|
return fThreadError;
|
||||||
@@ -212,7 +212,7 @@ Server::Repair()
|
|||||||
uint32 thisRepair = fRepairCount;
|
uint32 thisRepair = fRepairCount;
|
||||||
|
|
||||||
MutexLocker _(fRepairLock);
|
MutexLocker _(fRepairLock);
|
||||||
if (fRepairCount == thisRepair)
|
if (fRepairCount != thisRepair)
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
||||||
fThreadCancel = true;
|
fThreadCancel = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user