]> Pileus Git - ~andy/linux/blobdiff - drivers/net/bonding/bond_sysfs.c
bonding: convert use_carrier to use the new option API
[~andy/linux] / drivers / net / bonding / bond_sysfs.c
index 7f307bf096d1fc7c4d5a6ad5eb9bb55bf5231e18..004048240def11564be49ca04e36e385fba87051 100644 (file)
@@ -772,23 +772,13 @@ static ssize_t bonding_store_carrier(struct device *d,
                                     struct device_attribute *attr,
                                     const char *buf, size_t count)
 {
-       int new_value, ret;
        struct bonding *bond = to_bond(d);
+       int ret;
 
-       if (sscanf(buf, "%d", &new_value) != 1) {
-               pr_err("%s: no use_carrier value specified.\n",
-                      bond->dev->name);
-               return -EINVAL;
-       }
-
-       if (!rtnl_trylock())
-               return restart_syscall();
-
-       ret = bond_option_use_carrier_set(bond, new_value);
+       ret = bond_opt_tryset_rtnl(bond, BOND_OPT_USE_CARRIER, (char *)buf);
        if (!ret)
                ret = count;
 
-       rtnl_unlock();
        return ret;
 }
 static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR,