diff --git a/[refs] b/[refs] index 6c6910e49947..f650dd3ebcde 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5007392d8512e666107dc356d4c2e05627b9029b +refs/heads/master: 9b8adb5ea005fe73acd5dd58f9bd47eafa74c9d1 diff --git a/trunk/net/ipv4/devinet.c b/trunk/net/ipv4/devinet.c index 126bb911880f..3863c3a4223f 100644 --- a/trunk/net/ipv4/devinet.c +++ b/trunk/net/ipv4/devinet.c @@ -1347,7 +1347,8 @@ static int devinet_sysctl_forward(ctl_table *ctl, int write, struct net *net = ctl->extra2; if (valp != &IPV4_DEVCONF_DFLT(net, FORWARDING)) { - rtnl_lock(); + if (!rtnl_trylock()) + return restart_syscall(); if (valp == &IPV4_DEVCONF_ALL(net, FORWARDING)) { inet_forward_change(net); } else if (*valp) {