diff options
-rw-r--r-- | net/core/net-sysfs.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 2da59a0ac4ac..b9641e816eee 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c | |||
@@ -78,7 +78,7 @@ static ssize_t netdev_store(struct device *dev, struct device_attribute *attr, | |||
78 | goto err; | 78 | goto err; |
79 | 79 | ||
80 | if (!rtnl_trylock()) | 80 | if (!rtnl_trylock()) |
81 | return -ERESTARTSYS; | 81 | return restart_syscall(); |
82 | 82 | ||
83 | if (dev_isalive(net)) { | 83 | if (dev_isalive(net)) { |
84 | if ((ret = (*set)(net, new)) == 0) | 84 | if ((ret = (*set)(net, new)) == 0) |
@@ -225,7 +225,8 @@ static ssize_t store_ifalias(struct device *dev, struct device_attribute *attr, | |||
225 | if (len > 0 && buf[len - 1] == '\n') | 225 | if (len > 0 && buf[len - 1] == '\n') |
226 | --count; | 226 | --count; |
227 | 227 | ||
228 | rtnl_lock(); | 228 | if (!rtnl_trylock()) |
229 | return restart_syscall(); | ||
229 | ret = dev_set_alias(netdev, buf, count); | 230 | ret = dev_set_alias(netdev, buf, count); |
230 | rtnl_unlock(); | 231 | rtnl_unlock(); |
231 | 232 | ||
@@ -238,7 +239,8 @@ static ssize_t show_ifalias(struct device *dev, | |||
238 | const struct net_device *netdev = to_net_dev(dev); | 239 | const struct net_device *netdev = to_net_dev(dev); |
239 | ssize_t ret = 0; | 240 | ssize_t ret = 0; |
240 | 241 | ||
241 | rtnl_lock(); | 242 | if (!rtnl_trylock()) |
243 | return restart_syscall(); | ||
242 | if (netdev->ifalias) | 244 | if (netdev->ifalias) |
243 | ret = sprintf(buf, "%s\n", netdev->ifalias); | 245 | ret = sprintf(buf, "%s\n", netdev->ifalias); |
244 | rtnl_unlock(); | 246 | rtnl_unlock(); |