rxrpc: Map the EACCES error produced by some ICMP6 to EHOSTUNREACH
authorDavid Howells <dhowells@redhat.com>
Sat, 2 May 2020 12:31:19 +0000 (13:31 +0100)
committerDavid Howells <dhowells@redhat.com>
Sun, 31 May 2020 14:19:51 +0000 (15:19 +0100)
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>
net/rxrpc/peer_event.c

index b1449d971883613b026df3d65912a7b3dd0b4885..112e490ebbcd939bca76863af8cd2de78c2d8514 100644 (file)
@@ -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;