diff --git a/criu/cr-restore.c b/criu/cr-restore.c index d2491ad76..72daf6697 100644 --- a/criu/cr-restore.c +++ b/criu/cr-restore.c @@ -2403,6 +2403,7 @@ int prepare_task_entries(void) task_entries->nr_helpers = 0; futex_set(&task_entries->start, CR_STATE_FAIL); mutex_init(&task_entries->userns_sync_lock); + mutex_init(&task_entries->last_pid_mutex); return 0; } diff --git a/criu/include/rst_info.h b/criu/include/rst_info.h index 336c08b6b..f9840d168 100644 --- a/criu/include/rst_info.h +++ b/criu/include/rst_info.h @@ -11,6 +11,7 @@ struct task_entries { futex_t start; atomic_t cr_err; mutex_t userns_sync_lock; + mutex_t last_pid_mutex; }; struct fdt { @@ -66,4 +67,16 @@ struct rst_info { void *breakpoint; }; +extern struct task_entries *task_entries; + +static inline void lock_last_pid(void) +{ + mutex_lock(&task_entries->last_pid_mutex); +} + +static inline void unlock_last_pid(void) +{ + mutex_unlock(&task_entries->last_pid_mutex); +} + #endif /* __CR_RST_INFO_H__ */