Quoting Dan Smith ([email protected]):
> +static int do_sock_checkpoint(struct ckpt_ctx *ctx, struct sock *sk)
> +{
> +     struct socket *sock;
> +     int ret;
> +
> +     if (sk->sk_socket)
> +             return __do_sock_checkpoint(ctx, sk);
> +
> +     /* Temporarily adopt this orphan socket */
> +     ret = sock_create(sk->sk_family, sk->sk_type, 0, &sock);
> +     if (ret < 0)
> +             return ret;
> +     sock_graft(sk, sock);
> +
> +     ret = __do_sock_checkpoint(ctx, sk);

I'm sure I sound like an idiot, but... at restore, a socket will
be created for sk now.  Is that a problem?  I don't see where
sk_free() will cause that sock to be freed, and you are not
attaching it do a file whose close would cause it to be released...

-serge
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to