From: Xiaoguang Li lixiaoguang2@huawei.com
Conflict:NA Reference:https://gitee.com/src-openeuler/criu/pulls/21 --- criu/sk-netlink.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/criu/sk-netlink.c b/criu/sk-netlink.c index 3b86a7d..6d8ab2d 100644 --- a/criu/sk-netlink.c +++ b/criu/sk-netlink.c @@ -68,6 +68,17 @@ int netlink_receive_one(struct nlmsghdr *hdr, struct ns_id *ns, void *arg) return sk_collect_one(m->ndiag_ino, PF_NETLINK, &sd->sd, ns); }
+static int netlink_repair_on(int fd) +{ + int ret, aux = 1; + + ret = setsockopt(fd, SOL_NETLINK, TCP_REPAIR, &aux, sizeof(aux)); + if (ret < 0) + pr_err("Can't turn netlink repair mode ON, error: %d\n", ret); + + return ret; +} + static bool can_dump_netlink_sk(int lfd) { int ret; @@ -90,6 +101,10 @@ static int dump_one_netlink_fd(int lfd, u32 id, const struct fd_parms *p) if (IS_ERR(sk)) goto err;
+ if (netlink_repair_on(lfd) < 0) { + goto err; + } + ne.id = id; ne.ino = p->stat.st_ino;