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

batman at open-mesh.org batman at open-mesh.org
Tue Jan 12 00:15:46 CET 2016


The following commit has been merged in the master branch:
commit 9e728e84389ba8317d1444bdf256e34ad467f3da
Author: Simon Wunderlich <simon at open-mesh.com>
Date:   Tue Nov 17 14:11:26 2015 +0100

    batman-adv: only call post function if something changed
    
    Currently, the post function is also called on errors or if there were
    no changes, which is redundant for the functions currently using these
    facilities.
    
    Signed-off-by: Simon Wunderlich <simon at open-mesh.com>
    Signed-off-by: Marek Lindner <mareklindner at neomailbox.ch>
    Signed-off-by: Antonio Quartulli <a at unstable.cc>

diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index 48e2aad..fe87777 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -242,10 +242,13 @@ ssize_t batadv_show_vlan_##_name(struct kobject *kobj,			\
 
 static int batadv_store_bool_attr(char *buff, size_t count,
 				  struct net_device *net_dev,
-				  const char *attr_name, atomic_t *attr)
+				  const char *attr_name, atomic_t *attr,
+				  bool *changed)
 {
 	int enabled = -1;
 
+	*changed = false;
+
 	if (buff[count - 1] == '\n')
 		buff[count - 1] = '\0';
 
@@ -272,6 +275,8 @@ static int batadv_store_bool_attr(char *buff, size_t count,
 		    atomic_read(attr) == 1 ? "enabled" : "disabled",
 		    enabled == 1 ? "enabled" : "disabled");
 
+	*changed = true;
+
 	atomic_set(attr, (unsigned int)enabled);
 	return count;
 }
@@ -282,11 +287,12 @@ __batadv_store_bool_attr(char *buff, size_t count,
 			 struct attribute *attr,
 			 atomic_t *attr_store, struct net_device *net_dev)
 {
+	bool changed;
 	int ret;
 
 	ret = batadv_store_bool_attr(buff, count, net_dev, attr->name,
-				     attr_store);
-	if (post_func && ret)
+				     attr_store, &changed);
+	if (post_func && changed)
 		post_func(net_dev);
 
 	return ret;

-- 
LinuxNextTracking


More information about the linux-merge mailing list