summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-05-02 14:31:19 +0200
committerDavid Howells <dhowells@redhat.com>2020-05-31 16:19:51 +0200
commit23e2db311a10ba66c439ddac7a703991309702ee (patch)
tree399a8a64936e0abdd96f10943bb2cc3a76a030c0
parentvfs, afs, ext4: Make the inode hash table RCU searchable (diff)
downloadlinux-23e2db311a10ba66c439ddac7a703991309702ee.tar.xz
linux-23e2db311a10ba66c439ddac7a703991309702ee.zip
rxrpc: Map the EACCES error produced by some ICMP6 to EHOSTUNREACH
Map the EACCES error that is produced by some ICMP6 packets to EHOSTUNREACH when we get them as EACCES has other meanings within a filesystem context. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--net/rxrpc/peer_event.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/rxrpc/peer_event.c b/net/rxrpc/peer_event.c
index b1449d971883..112e490ebbcd 100644
--- a/net/rxrpc/peer_event.c
+++ b/net/rxrpc/peer_event.c
@@ -271,6 +271,9 @@ static void rxrpc_store_error(struct rxrpc_peer *peer,
break;
case SO_EE_ORIGIN_ICMP6:
+ if (err == EACCES)
+ err = EHOSTUNREACH;
+ /* Fall through */
default:
_proto("Rx Received error report { orig=%u }", ee->ee_origin);
break;