Commit 84d1ffb9 authored by Pavel Emelyanov's avatar Pavel Emelyanov

fd: Move rst fd list iteration into helper

Same again -- for code to be cleaner.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 455aa8cd
...@@ -454,6 +454,20 @@ static int open_fdinfo(int pid, struct fdinfo_list_entry *fle, int state) ...@@ -454,6 +454,20 @@ static int open_fdinfo(int pid, struct fdinfo_list_entry *fle, int state)
return ret; return ret;
} }
static int open_fdinfos(int pid, struct list_head *list, int state)
{
int ret = 0;
struct fdinfo_list_entry *fle;
list_for_each_entry(fle, list, ps_list) {
ret = open_fdinfo(pid, fle, state);
if (ret)
break;
}
return ret;
}
static int close_old_fds(struct pstree_item *me) static int close_old_fds(struct pstree_item *me)
{ {
/* /*
...@@ -475,7 +489,6 @@ int prepare_fds(struct pstree_item *me) ...@@ -475,7 +489,6 @@ int prepare_fds(struct pstree_item *me)
{ {
u32 ret; u32 ret;
int state; int state;
struct fdinfo_list_entry *fle;
ret = close_old_fds(me); ret = close_old_fds(me);
if (ret) if (ret)
...@@ -484,24 +497,20 @@ int prepare_fds(struct pstree_item *me) ...@@ -484,24 +497,20 @@ int prepare_fds(struct pstree_item *me)
pr_info("Opening fdinfo-s\n"); pr_info("Opening fdinfo-s\n");
for (state = 0; state < FD_STATE_MAX; state++) { for (state = 0; state < FD_STATE_MAX; state++) {
list_for_each_entry(fle, &me->rst->fds, ps_list) { ret = open_fdinfos(me->pid.virt, &me->rst->fds, state);
ret = open_fdinfo(me->pid.virt, fle, state); if (ret)
if (ret) break;
goto done;
}
/* /*
* The eventpoll descriptors require all the other ones * The eventpoll descriptors require all the other ones
* to be already restored, thus we store them in a separate * to be already restored, thus we store them in a separate
* list and restore at the very end. * list and restore at the very end.
*/ */
list_for_each_entry(fle, &me->rst->eventpoll, ps_list) { ret = open_fdinfos(me->pid.virt, &me->rst->eventpoll, state);
ret = open_fdinfo(me->pid.virt, fle, state); if (ret)
if (ret) break;
goto done;
}
} }
done:
return ret; return ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment