[Devel] Re: [PATCH 2/2] Move ckpt_objhash_free() to before we destroy the deferqueues

Serge E. Hallyn serue at us.ibm.com
Tue Feb 9 13:29:28 PST 2010


Well you can't quite do that bc fs/eventpoll.c:ep_items_restore()
will use ckpt_obj_fetch().

Would it be safe to make the order:

	files_deferqueue()

	ckpt_obj_hash_free()

	deferqueue()

?

Though that's just waiting to bite us in the ankles whenever
we put something in general deferqueue which must ckpt_obj_fetch()...

-serge

Quoting Dan Smith (danms at us.ibm.com):
> This makes the deferqueue cleanup function run after all the objects
> have been purged from the hash and thus gives us an opportunity to cleanup
> things that *must* happen after the last reference is dropped (such as
> unregister_netdev()).
> 
> Signed-off-by: Dan Smith <danms at us.ibm.com>
> ---
>  checkpoint/sys.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/checkpoint/sys.c b/checkpoint/sys.c
> index f04b8b0..f739932 100644
> --- a/checkpoint/sys.c
> +++ b/checkpoint/sys.c
> @@ -223,6 +223,8 @@ static void ckpt_ctx_free(struct ckpt_ctx *ctx)
>  	if (ctx->kflags & CKPT_CTX_RESTART)
>  		restore_debug_free(ctx);
> 
> +	ckpt_obj_hash_free(ctx);
> +
>  	if (ctx->deferqueue)
>  		deferqueue_destroy(ctx->deferqueue);
> 
> @@ -234,7 +236,6 @@ static void ckpt_ctx_free(struct ckpt_ctx *ctx)
>  	if (ctx->logfile)
>  		fput(ctx->logfile);
> 
> -	ckpt_obj_hash_free(ctx);
>  	path_put(&ctx->root_fs_path);
>  	ckpt_pgarr_free(ctx);
> 
> -- 
> 1.6.2.5
> 
> _______________________________________________
> Containers mailing list
> Containers at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list