diff options
author | Pavel Emelyanov <xemul@virtuozzo.com> | 2017-02-16 15:11:27 +0300 |
---|---|---|
committer | Pavel Emelyanov <xemul@virtuozzo.com> | 2017-03-06 11:40:37 +0300 |
commit | f7862732510390d8b5eaea7923cd9d2ea12fabd9 (patch) | |
tree | 9af57e3dd522423c119d40ada01933d6fd724af1 | |
parent | 8c0eef35f4282a65928c1fbfd17074b2219f65e1 (diff) |
files: Make find_used_fd work on pstree_item
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
-rw-r--r-- | criu/files.c | 9 | ||||
-rw-r--r-- | criu/include/files.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/criu/files.c b/criu/files.c index 0a8b51f38..7f0f9f303 100644 --- a/criu/files.c +++ b/criu/files.c @@ -98,10 +98,12 @@ static inline struct file_desc *find_file_desc(FdinfoEntry *fe) return find_file_desc_raw(fe->type, fe->id); } -struct fdinfo_list_entry *find_used_fd(struct list_head *head, int fd) +struct fdinfo_list_entry *find_used_fd(struct pstree_item *task, int fd) { + struct list_head *head; struct fdinfo_list_entry *fle; + head = &rsti(task)->used; list_for_each_entry_reverse(fle, head, used_list) { if (fle->fe->fd == fd) return fle; @@ -134,14 +136,13 @@ unsigned int find_unused_fd(struct pstree_item *task, int hint_fd) struct fdinfo_list_entry *fle; int fd = 0, prev_fd; - head = &rsti(task)->used; - - if ((hint_fd >= 0) && (!find_used_fd(head, hint_fd))) { + if ((hint_fd >= 0) && (!find_used_fd(task, hint_fd))) { fd = hint_fd; goto out; } prev_fd = service_fd_min_fd() - 1; + head = &rsti(task)->used; list_for_each_entry_reverse(fle, head, used_list) { fd = fle->fe->fd; diff --git a/criu/include/files.h b/criu/include/files.h index 855f0950a..98e541033 100644 --- a/criu/include/files.h +++ b/criu/include/files.h @@ -118,7 +118,7 @@ struct file_desc_ops { void collect_task_fd(struct fdinfo_list_entry *new_fle, struct rst_info *ri); unsigned int find_unused_fd(struct pstree_item *, int hint_fd); -struct fdinfo_list_entry *find_used_fd(struct list_head *head, int fd); +struct fdinfo_list_entry *find_used_fd(struct pstree_item *, int fd); struct file_desc { u32 id; /* File id, unique */ |