diff --git a/net/tipc/monitor.c b/net/tipc/monitor.c index be70a57c1ff9a060021b8db620ce9d495b331a87..b62caa1c770c042fa7449f401bcb333b3defa485 100644 --- a/net/tipc/monitor.c +++ b/net/tipc/monitor.c @@ -794,10 +794,10 @@ int __tipc_nl_add_monitor(struct net *net, struct tipc_nl_msg *msg, return 0; attr_msg_full: + read_unlock_bh(&mon->lock); nla_nest_cancel(msg->skb, attrs); msg_full: genlmsg_cancel(msg->skb, hdr); - read_unlock_bh(&mon->lock); return -EMSGSIZE; }