diff --git a/net/socket.c b/net/socket.c index 224aa325a53a..a86adaf9b52e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1496,9 +1496,10 @@ int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen) (struct sockaddr *) &address, addrlen); } - fput_light(sock->file, fput_needed); if (!err) sockev_notify(SOCKEV_BIND, sock); + + fput_light(sock->file, fput_needed); } return err; } @@ -1530,9 +1531,10 @@ int __sys_listen(int fd, int backlog) if (!err) err = sock->ops->listen(sock, backlog); - fput_light(sock->file, fput_needed); if (!err) sockev_notify(SOCKEV_LISTEN, sock); + + fput_light(sock->file, fput_needed); } return err; }