aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-10-06 08:11:50 +0100
committerDavid Howells <dhowells@redhat.com>2016-10-06 08:11:50 +0100
commit9008f998a2e992991a5d60656d4573ba4c516c58 (patch)
tree241e180d6415b158251bc06b3ac2bcb207c6c1ba /fs/afs
parentrxrpc: Return negative error code to kernel service (diff)
downloadlinux-dev-9008f998a2e992991a5d60656d4573ba4c516c58.tar.xz
linux-dev-9008f998a2e992991a5d60656d4573ba4c516c58.zip
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>
Diffstat (limited to 'fs/afs')
-rw-r--r--fs/afs/rxrpc.c2
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)
&call->abort_code);
if (ret == -EINPROGRESS || ret == -EAGAIN)
return;
- if (ret == 1) {
+ if (ret == 1 || ret < 0) {
call->state = AFS_CALL_COMPLETE;
goto done;
}