diff --git a/criu/files.c b/criu/files.c index d317bc9ab..5a9268526 100644 --- a/criu/files.c +++ b/criu/files.c @@ -183,6 +183,18 @@ out: return fd; } +int find_unused_fd_pid(pid_t pid) +{ + struct pstree_item *task; + + task = pstree_item_by_virt(pid); + if (!task) { + pr_err("Invalid pid:%d\n", pid); + return -1; + } + return find_unused_fd(task, -1); +} + int set_fds_event(pid_t virt) { struct pstree_item *item; diff --git a/criu/include/files.h b/criu/include/files.h index aadc09f73..31ebb0ca0 100644 --- a/criu/include/files.h +++ b/criu/include/files.h @@ -195,4 +195,5 @@ extern int open_transport_socket(void); extern int set_fds_event(pid_t virt); extern void wait_fds_event(void); +int find_unused_fd_pid(pid_t pid); #endif /* __CR_FILES_H__ */