diff options
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r-- | net/core/net-sysfs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 981fed397d1d..9bd9ae16adf5 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c | |||
@@ -1157,6 +1157,13 @@ static void remove_queue_kobjects(struct net_device *net) | |||
1157 | #endif | 1157 | #endif |
1158 | } | 1158 | } |
1159 | 1159 | ||
1160 | static bool net_current_may_mount(void) | ||
1161 | { | ||
1162 | struct net *net = current->nsproxy->net_ns; | ||
1163 | |||
1164 | return ns_capable(net->user_ns, CAP_SYS_ADMIN); | ||
1165 | } | ||
1166 | |||
1160 | static void *net_grab_current_ns(void) | 1167 | static void *net_grab_current_ns(void) |
1161 | { | 1168 | { |
1162 | struct net *ns = current->nsproxy->net_ns; | 1169 | struct net *ns = current->nsproxy->net_ns; |
@@ -1179,6 +1186,7 @@ static const void *net_netlink_ns(struct sock *sk) | |||
1179 | 1186 | ||
1180 | struct kobj_ns_type_operations net_ns_type_operations = { | 1187 | struct kobj_ns_type_operations net_ns_type_operations = { |
1181 | .type = KOBJ_NS_TYPE_NET, | 1188 | .type = KOBJ_NS_TYPE_NET, |
1189 | .current_may_mount = net_current_may_mount, | ||
1182 | .grab_current_ns = net_grab_current_ns, | 1190 | .grab_current_ns = net_grab_current_ns, |
1183 | .netlink_ns = net_netlink_ns, | 1191 | .netlink_ns = net_netlink_ns, |
1184 | .initial_ns = net_initial_ns, | 1192 | .initial_ns = net_initial_ns, |