sock: Reset dst when changing sk_mark via setsockopt
authorDavid Barmann <david.barmann@stackpath.com>
Thu, 8 Nov 2018 14:13:35 +0000 (08:13 -0600)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Nov 2018 03:36:13 +0000 (19:36 -0800)
commit50254256f382c56bde87d970f3d0d02fdb76ec70
tree5f2935d7f5a7f63b3074e5babd329d284d9797cf
parent52358cb5a310990ea5069f986bdab3620e01181f
sock: Reset dst when changing sk_mark via setsockopt

When setting the SO_MARK socket option, if the mark changes, the dst
needs to be reset so that a new route lookup is performed.

This fixes the case where an application wants to change routing by
setting a new sk_mark.  If this is done after some packets have already
been sent, the dst is cached and has no effect.

Signed-off-by: David Barmann <david.barmann@stackpath.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c