2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-03 07:45:17 +00:00

crtools: make pid parameter optional for open_image_ro()

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Stanislav Kinsbursky
2012-03-23 18:41:00 +04:00
committed by Pavel Emelyanov
parent 90376f2286
commit f659f64247
2 changed files with 8 additions and 4 deletions

View File

@@ -106,7 +106,7 @@ extern void close_image_dir(void);
int open_image(int type, unsigned long flags, ...); int open_image(int type, unsigned long flags, ...);
#define open_image_ro(type, ...) open_image(type, O_RDONLY, ##__VA_ARGS__) #define open_image_ro(type, ...) open_image(type, O_RDONLY, ##__VA_ARGS__)
extern int open_image_ro_nocheck(const char *fmt, int pid); extern int open_image_ro_nocheck(const char *fmt, ...);
#define LAST_PID_PATH "/proc/sys/kernel/ns_last_pid" #define LAST_PID_PATH "/proc/sys/kernel/ns_last_pid"
#define LAST_PID_PERM 0666 #define LAST_PID_PERM 0666

10
util.c
View File

@@ -129,15 +129,19 @@ int move_img_fd(int *img_fd, int want_fd)
return 0; return 0;
} }
int open_image_ro_nocheck(const char *fmt, int pid) int open_image_ro_nocheck(const char *fmt, ...)
{ {
char path[PATH_MAX]; char path[PATH_MAX];
va_list args;
int tmp; int tmp;
sprintf(path, fmt, pid); va_start(args, fmt);
vsprintf(path, fmt, args);
va_end(args);
tmp = openat(image_dir_fd, path, O_RDONLY); tmp = openat(image_dir_fd, path, O_RDONLY);
if (tmp < 0) if (tmp < 0)
pr_warn("Can't open image %s for %d: %m\n", fmt, pid); pr_warn("Can't open image %s: %m\n", path);
return tmp; return tmp;
} }