[CRIU] [PATCH 08/12] files: Close old service fd in clone_service_fd()
Kirill Tkhai
ktkhai at virtuozzo.com
Tue Dec 26 18:46:55 MSK 2017
Next patches will make service_fd_base not contant.
It will be "floating" and change from task to task.
This patch makes preparation for that: it closes
old service fd after it's duplicated.
Currently the code is unused as in case of
!(rsti(me)->clone_flags & CLONE_FILES), the child
has the same id as its parent, and the duplication
just does not occur.
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
criu/util.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/criu/util.c b/criu/util.c
index 415041c48..4cb660ff1 100644
--- a/criu/util.c
+++ b/criu/util.c
@@ -542,6 +542,8 @@ int clone_service_fd(struct pstree_item *me)
continue;
pr_perror("Unable to clone %d->%d", old, new);
}
+ if (ret >= 0 && !(rsti(me)->clone_flags & CLONE_FILES))
+ close(old);
}
service_fd_id = id;
More information about the CRIU
mailing list