diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/netlink/af_netlink.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 2ad445c1d27c..07e8478068f0 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -2308,7 +2308,7 @@ int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb, | |||
2308 | if (cb->start) { | 2308 | if (cb->start) { |
2309 | ret = cb->start(cb); | 2309 | ret = cb->start(cb); |
2310 | if (ret) | 2310 | if (ret) |
2311 | goto error_unlock; | 2311 | goto error_put; |
2312 | } | 2312 | } |
2313 | 2313 | ||
2314 | nlk->cb_running = true; | 2314 | nlk->cb_running = true; |
@@ -2328,6 +2328,8 @@ int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb, | |||
2328 | */ | 2328 | */ |
2329 | return -EINTR; | 2329 | return -EINTR; |
2330 | 2330 | ||
2331 | error_put: | ||
2332 | module_put(control->module); | ||
2331 | error_unlock: | 2333 | error_unlock: |
2332 | sock_put(sk); | 2334 | sock_put(sk); |
2333 | mutex_unlock(nlk->cb_mutex); | 2335 | mutex_unlock(nlk->cb_mutex); |