All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/3] c/r: kread/kwrite() to abort if CKPT_CTX_ERROR is set
@ 2009-12-06 20:09 Oren Laadan
       [not found] ` <1260130151-2500-1-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Oren Laadan @ 2009-12-06 20:09 UTC (permalink / raw)
  To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

This is useful particularly in restart to force a task that is
restoring to respond quickly to an error condition due to another
task, instead of only detecting it when it completes (or fails).
For example, when a restarting tasks activates the next task, and
then fails.

Signed-off-by: Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
---
 checkpoint/sys.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/checkpoint/sys.c b/checkpoint/sys.c
index dbee469..afcfa1e 100644
--- a/checkpoint/sys.c
+++ b/checkpoint/sys.c
@@ -65,6 +65,9 @@ int ckpt_kwrite(struct ckpt_ctx *ctx, void *addr, int count)
 	mm_segment_t fs;
 	int ret;
 
+	if (ckpt_test_ctx_error(ctx))
+		return ckpt_get_error(ctx);
+
 	fs = get_fs();
 	set_fs(KERNEL_DS);
 	ret = _ckpt_kwrite(ctx->file, addr, count);
@@ -102,6 +105,9 @@ int ckpt_kread(struct ckpt_ctx *ctx, void *addr, int count)
 	mm_segment_t fs;
 	int ret;
 
+	if (ckpt_test_ctx_error(ctx))
+		return ckpt_get_error(ctx);
+
 	fs = get_fs();
 	set_fs(KERNEL_DS);
 	ret = _ckpt_kread(ctx->file , addr, count);
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 2/3] c/r: kread/kwrite() to abort if CKPT_CTX_ERROR is set
       [not found] ` <1260130151-2500-1-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
@ 2009-12-09 15:34   ` Serge E. Hallyn
  0 siblings, 0 replies; 2+ messages in thread
From: Serge E. Hallyn @ 2009-12-09 15:34 UTC (permalink / raw)
  To: Oren Laadan; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Quoting Oren Laadan (orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org):
> This is useful particularly in restart to force a task that is
> restoring to respond quickly to an error condition due to another
> task, instead of only detecting it when it completes (or fails).
> For example, when a restarting tasks activates the next task, and
> then fails.
> 
> Signed-off-by: Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>

Hmm, true, that has obscured a few bugs for me already :)

thanks,
-serge

> ---
>  checkpoint/sys.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/checkpoint/sys.c b/checkpoint/sys.c
> index dbee469..afcfa1e 100644
> --- a/checkpoint/sys.c
> +++ b/checkpoint/sys.c
> @@ -65,6 +65,9 @@ int ckpt_kwrite(struct ckpt_ctx *ctx, void *addr, int count)
>  	mm_segment_t fs;
>  	int ret;
> 
> +	if (ckpt_test_ctx_error(ctx))
> +		return ckpt_get_error(ctx);
> +
>  	fs = get_fs();
>  	set_fs(KERNEL_DS);
>  	ret = _ckpt_kwrite(ctx->file, addr, count);
> @@ -102,6 +105,9 @@ int ckpt_kread(struct ckpt_ctx *ctx, void *addr, int count)
>  	mm_segment_t fs;
>  	int ret;
> 
> +	if (ckpt_test_ctx_error(ctx))
> +		return ckpt_get_error(ctx);
> +
>  	fs = get_fs();
>  	set_fs(KERNEL_DS);
>  	ret = _ckpt_kread(ctx->file , addr, count);
> -- 
> 1.6.3.3
> 
> _______________________________________________
> Containers mailing list
> Containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
> https://lists.linux-foundation.org/mailman/listinfo/containers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-12-09 15:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-06 20:09 [PATCH 2/3] c/r: kread/kwrite() to abort if CKPT_CTX_ERROR is set Oren Laadan
     [not found] ` <1260130151-2500-1-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-12-09 15:34   ` Serge E. Hallyn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.