From 654c2ee79dae4429287d5ea458952759a7a4632e Mon Sep 17 00:00:00 2001
From: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Date: Thu, 29 Jul 2021 14:21:37 +0300
Subject: [PATCH 031/245] sockets: don't call sk_setbufs asyncronously
We want to also c/r socket buf locks (SO_BUF_LOCKS) which are also
implicitly set by setsockopt(SO_{SND,RCV}BUF*), so we need to order
these two properly. That's why we need to wait for sk_setbufs to finish.
And there is no much point in seting buffer sizes asyncronously anyway.
Reviewed-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
---
criu/sockets.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/criu/sockets.c b/criu/sockets.c
index 9426b5b94..65aa82950 100644
--- a/criu/sockets.c
+++ b/criu/sockets.c
@@ -517,7 +517,7 @@ int restore_socket_opts(int sk, SkOptsEntry *soe)
pr_info("%d restore sndbuf %d rcv buf %d\n", sk, soe->so_sndbuf, soe->so_rcvbuf);
/* setsockopt() multiplies the input values by 2 */
- ret |= userns_call(sk_setbufs, UNS_ASYNC, bufs, sizeof(bufs), sk);
+ ret |= userns_call(sk_setbufs, 0, bufs, sizeof(bufs), sk);
if (soe->has_so_priority) {
pr_debug("\trestore priority %d for socket\n", soe->so_priority);
--
2.35.1