diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index cabed0e9c9d810e2ab3f7a960ded69ed207bc8e5..bd9e53c780269d593cbf58f2fd589c4ddad5fa7b 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -242,6 +242,7 @@ int af_alg_accept(struct sock *sk, struct socket *newsock)
 		goto unlock;
 
 	sock_init_data(newsock, sk2);
+	sock_graft(sk2, newsock);
 
 	err = type->accept(ask->private, sk2);
 	if (err) {