From c6decbc04412fc4411ea220bdf16d626ab99b1db Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Wed, 13 May 2009 16:59:21 +0000 Subject: [PATCH] --- yaml --- r: 150318 b: refs/heads/master c: 9b8adb5ea005fe73acd5dd58f9bd47eafa74c9d1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/devinet.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) 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) {