aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2019-04-13 03:37:37 -0400
committerDavid Howells <dhowells@redhat.com>2019-04-13 03:37:37 -0400
commit8022c4b95c3793d7ba28ab0701ea15b5deb46e02 (patch)
tree7b172c5703779cf8339c4b1ada906ccecb91e92b /fs/afs
parentd2abfa86ff373bd00634a656c7ad5531747f2bf8 (diff)
afs: Differentiate abort due to unmarshalling from other errors
Differentiate an abort due to an unmarshalling error from an abort due to other errors, such as ENETUNREACH. It doesn't make sense to set abort code RXGEN_*_UNMARSHAL in such a case, so use RX_USER_ABORT instead. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs')
-rw-r--r--fs/afs/rxrpc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index c14001b42d20..15c7e82d80cb 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -572,13 +572,17 @@ static void afs_deliver_to_call(struct afs_call *call)
572 case -ENODATA: 572 case -ENODATA:
573 case -EBADMSG: 573 case -EBADMSG:
574 case -EMSGSIZE: 574 case -EMSGSIZE:
575 default:
576 abort_code = RXGEN_CC_UNMARSHAL; 575 abort_code = RXGEN_CC_UNMARSHAL;
577 if (state != AFS_CALL_CL_AWAIT_REPLY) 576 if (state != AFS_CALL_CL_AWAIT_REPLY)
578 abort_code = RXGEN_SS_UNMARSHAL; 577 abort_code = RXGEN_SS_UNMARSHAL;
579 rxrpc_kernel_abort_call(call->net->socket, call->rxcall, 578 rxrpc_kernel_abort_call(call->net->socket, call->rxcall,
580 abort_code, ret, "KUM"); 579 abort_code, ret, "KUM");
581 goto local_abort; 580 goto local_abort;
581 default:
582 abort_code = RX_USER_ABORT;
583 rxrpc_kernel_abort_call(call->net->socket, call->rxcall,
584 abort_code, ret, "KER");
585 goto local_abort;
582 } 586 }
583 } 587 }
584 588