[CRIU] [PATCH 2/4] ipc: move all checkpoint-restore code under appropriate define

Pavel Emelyanov xemul at parallels.com
Mon Apr 9 15:47:43 EDT 2012


On 04/09/2012 09:54 PM, Stanislav Kinsbursky wrote:
> All new checkpoint/restore code parts are now covered with
> CONFIG_CHECKPOINT_RESTORE marco. So it would be easy to remove them, in case
> the whole project fails.
> 
> ---
>  ipc/compat.c |    9 ++++++---
>  ipc/msg.c    |   15 ++++++++++++++-
>  2 files changed, 20 insertions(+), 4 deletions(-)
> 
> @@ -387,8 +388,10 @@ long compat_sys_msgrcv(int first, int second, int msgtyp, int third,
>  		msgtyp = ipck.msgtyp;
>  	}
>  	return do_msgrcv(first, uptr, second, msgtyp, third,
> -			 (third & MSG_PEEK_ALL) ? compat_do_msg_peek_all
> -						: compat_do_msg_fill);
> +#ifdef CONFIG_CHECKPOINT_RESTORE
> +			 (third & MSG_PEEK_ALL) ? compat_do_msg_peek_all :
> +#endif
> +						compat_do_msg_fill);

These ifdefs in the middle of the code look not very elegant. Is there a way
to replace the checks they surround with static inline function (reporting
0 when CHECKPOINT_RESTORE is off) potentially letting the compiler optimize
out the code sitting under if (0) ?

>  }
>  
>  static inline int get_compat_msqid64(struct msqid64_ds *m64,
> diff --git a/ipc/msg.c b/ipc/msg.c
> index 017bf0b..8d63cc7 100644


More information about the CRIU mailing list