diff options
author | David Howells <dhowells@redhat.com> | 2016-10-06 03:11:50 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2016-10-06 03:11:50 -0400 |
commit | 9008f998a2e992991a5d60656d4573ba4c516c58 (patch) | |
tree | 241e180d6415b158251bc06b3ac2bcb207c6c1ba | |
parent | cf69207afa2a750ba78782bb4ff4d72c1efb8e6b (diff) |
afs: Check for fatal error when in waiting for ack state
When it's in the waiting-for-ACK state, the AFS filesystem needs to check
the result of rxrpc_kernel_recv_data() any time it is notified to see if it
is indicating a fatal error. If this is the case, it needs to mark the
call completed otherwise the call just sits there and never goes away.
Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r-- | fs/afs/rxrpc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c index 59bdaa7527b6..477928b25940 100644 --- a/fs/afs/rxrpc.c +++ b/fs/afs/rxrpc.c | |||
@@ -418,7 +418,7 @@ static void afs_deliver_to_call(struct afs_call *call) | |||
418 | &call->abort_code); | 418 | &call->abort_code); |
419 | if (ret == -EINPROGRESS || ret == -EAGAIN) | 419 | if (ret == -EINPROGRESS || ret == -EAGAIN) |
420 | return; | 420 | return; |
421 | if (ret == 1) { | 421 | if (ret == 1 || ret < 0) { |
422 | call->state = AFS_CALL_COMPLETE; | 422 | call->state = AFS_CALL_COMPLETE; |
423 | goto done; | 423 | goto done; |
424 | } | 424 | } |