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 <dhowe...@redhat.com>
---

 net/rxrpc/peer_event.c |    3 +++
 1 file changed, 3 insertions(+)

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;


Reply via email to