[CRIU] [PATCH 3/9] unux: postpone dumping sockets

Pavel Emelyanov xemul at parallels.com
Thu Dec 19 09:51:28 PST 2013


On 12/19/2013 09:34 PM, Andrey Vagin wrote:
> Unix sockets are dumped, when a peer socket is found.
> We are going to dump external sockets with help plugins. For the we need
> to set the USK_CALLBACK flags in unix entry. Currently a socket is
> dumped immediately when it's transfered, but we can be sure that a
> socket is not external, only when we have its peer.
> 
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
>  sk-unix.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/sk-unix.c b/sk-unix.c
> index 9fe3ef3..7cc1093 100644
> --- a/sk-unix.c
> +++ b/sk-unix.c
> @@ -324,7 +324,7 @@ dump:
>  	pr_info("Dumping unix socket at %d\n", p->fd);
>  	show_one_unix("Dumping", sk);
>  
> -	if (write_unix_entry(sk))
> +	if (list_empty(&sk->peer_node) && write_unix_entry(sk))

Plz add comment explaining why we don't write this here.

>  		goto err;
>  
>  	list_del_init(&sk->list);
> @@ -335,6 +335,9 @@ dump:
>  		psk = list_first_entry(&sk->peer_list, struct unix_sk_desc, peer_node);
>  		close_safe(&psk->fd);
>  		list_del_init(&psk->peer_node);
> +
> +		if (write_unix_entry(psk))
> +			goto err;
>  	}
>  
>  	return 0;
> @@ -559,6 +562,9 @@ int fix_external_unix_sockets(void)
>  			psk = list_first_entry(&sk->peer_list, struct unix_sk_desc, peer_node);
>  			close_safe(&psk->fd);
>  			list_del_init(&psk->peer_node);
> +
> +			if (write_unix_entry(psk))
> +				goto err;
>  		}
>  	}
>  
> 




More information about the CRIU mailing list