[linux-next] LinuxNextTracking branch, master, updated. next-20130617

batman at open-mesh.org batman at open-mesh.org
Tue Jun 18 00:18:53 CEST 2013

The following commit has been merged in the master branch:
commit ac16d1484efd5d2d9077c55453b1f8abff49fc18
Author: Matthias Schiffer <mschiffer at universe-factory.net>
Date:   Tue May 28 17:32:32 2013 +0200

    batman-adv: wait for rtnl in batadv_store_mesh_iface instead of failing if it is taken
    The rtnl_lock in batadv_store_mesh_iface has been converted to a rtnl_trylock
    some time ago to avoid a possible deadlock between rtnl and s_active on removal
    of the sysfs nodes.
    The behaviour introduced by that was quite confusing as it could lead to the
    sysfs store to fail, making batman-adv setup scripts unreliable. As recently the
    sysfs removal was postponed to a worker not running with the rtnl taken, the
    deadlock can't occur any more and it is safe to change the trylock back to a
    lock to make the sysfs store reliable again.
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
    Reviewed-by: Simon Wunderlich <siwu at hrz.tu-chemnitz.de>
    Signed-off-by: Marek Lindner <lindner_marek at yahoo.de>
    Signed-off-by: Antonio Quartulli <ordex at autistici.org>

diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index 15a22ef..929e304 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -582,10 +582,7 @@ static ssize_t batadv_store_mesh_iface(struct kobject *kobj,
 	    (strncmp(hard_iface->soft_iface->name, buff, IFNAMSIZ) == 0))
 		goto out;
-	if (!rtnl_trylock()) {
-		ret = -ERESTARTSYS;
-		goto out;
-	}
+	rtnl_lock();
 	if (status_tmp == BATADV_IF_NOT_IN_USE) {


More information about the linux-merge mailing list