[CRIU] [PATCH] crtools: don't prevent to dump memory mappings on /dev/zero

Pavel Emelyanov xemul at parallels.com
Wed Jan 16 10:31:49 EST 2013


On 01/16/2013 07:03 PM, Andrey Vagin wrote:
> Oracle has such mappings.
> 
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
>  include/util.h | 2 ++
>  proc_parse.c   | 3 ++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/include/util.h b/include/util.h
> index 0fa5003..6ce0783 100644
> --- a/include/util.h
> +++ b/include/util.h
> @@ -263,6 +263,8 @@ int do_open_proc(pid_t pid, int flags, const char *fmt, ...);
>  #define pr_img_head(type, ...)	pr_msg("\n"#type __VA_ARGS__ "\n----------------\n")
>  #define pr_img_tail(type)	pr_msg("----------------\n")
>  
> +#define DEVZERO		(makedev(1, 5))
> +
>  #define KDEV_MINORBITS	20
>  #define KDEV_MINORMASK	((1UL << KDEV_MINORBITS) - 1)
>  #define MKKDEV(ma, mi)	(((ma) << KDEV_MINORBITS) | (mi))
> diff --git a/proc_parse.c b/proc_parse.c
> index e641cb4..034db10 100644
> --- a/proc_parse.c
> +++ b/proc_parse.c
> @@ -301,7 +301,8 @@ int parse_smaps(pid_t pid, struct list_head *vma_area_list, bool use_map_files)
>  				pr_perror("Failed fstat on %d's map %lu", pid, start);
>  				goto err;
>  			}
> -			if (!S_ISREG(st_buf.st_mode)) {
> +
> +			if (!S_ISREG(st_buf.st_mode) && (st_buf.st_rdev != DEVZERO)) {

&& !(S_ISDEV(st_bude.st_mode) && st_buf.st_rdev == DEVZERO)

>  				pr_err("Can't handle non-regular mapping on %d's map %lu\n", pid, start);
>  				goto err;
>  			}
> 




More information about the CRIU mailing list