Thread (25 messages) 25 messages, 6 authors, 2009-03-08

Re: IPv4/IPv6 sysctl unregistration deadlock

From: Patrick McHardy <hidden>
Date: 2009-03-02 11:07:15

Stephen Hemminger wrote:
On Fri, 27 Feb 2009 10:26:43 -0800
Ben Greear [off-list ref] wrote:
quoted
Stephen Hemminger wrote:
quoted
Subject: [PATCH] Avoid race between network down and sysfs


Signed-off-by: Stephen Hemminger <redacted>
--- a/net/core/net-sysfs.c	2009-02-26 08:36:18.000000000 -0800
+++ b/net/core/net-sysfs.c	2009-02-26 08:37:51.000000000 -0800
@@ -77,7 +77,9 @@ static ssize_t netdev_store(struct devic
 	if (endp == buf)
 		goto err;
 
-	rtnl_lock();
+	if (!rtnl_trylock())
+		return -ERESTARTSYS;
+
 	if (dev_isalive(net)) {
 		if ((ret = (*set)(net, new)) == 0)
 			ret = len;
I can test this to see if it fixes my problem.  Are the above lines the
entirety of the patch?
yes
We should be able to avoid the restart looping in most cases,
we only need to do this while unregistration is in progress.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help