[CRIU] [PATCH 4/5] files: Kill autofs_create_fle() and use generic helper

Kirill Tkhai ktkhai at virtuozzo.com
Thu Jun 1 04:08:36 PST 2017


On 01.06.2017 14:34, Kirill Tkhai wrote:
> Everything is prepared: the pair "type and id" is
> uniqul, so find_file_desc() in collect_fd() will
> work as expected and it will find the file_desc
> we just added in autofs_create_pipe()->collect_one_pipe_ops().
> 
> So, the not-generic helper may be killed.
> 
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>

Returned debug print:

[PATCH 4/5 v2]files: Kill autofs_create_fle() and use generic helper

Everything is prepared: the pair "type and id" is
uniqul, so find_file_desc() in collect_fd() will
work as expected and it will find the file_desc
we just added in autofs_create_pipe()->collect_one_pipe_ops().

So, the not-generic helper may be killed.

v2: Leave debug print on the place.

Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
Acked-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
---
 criu/autofs.c | 26 +++-----------------------
 1 file changed, 3 insertions(+), 23 deletions(-)

diff --git a/criu/autofs.c b/criu/autofs.c
index 9567b955d..bd64624e3 100644
--- a/criu/autofs.c
+++ b/criu/autofs.c
@@ -849,28 +849,6 @@ static struct fdinfo_list_entry *autofs_pipe_le(struct pstree_item *master,
 	return ple;
 }
 
-static int autofs_create_fle(struct pstree_item *task, FdinfoEntry *fe,
-			     struct file_desc *desc)
-{
-	struct fdinfo_list_entry *le;
-	struct rst_info *rst_info = rsti(task);
-
-	le = shmalloc(sizeof(*le));
-	if (!le)
-		return -1;
-
-	fle_init(le, vpid(task), fe);
-
-	collect_task_fd(le, rst_info);
-
-	list_add_tail(&le->desc_list, &desc->fd_info_head);
-	le->desc = desc;
-
-	pr_info("autofs: added pipe fd %d, flags %#x to %d (with post_open)\n",
-			le->fe->fd, le->fe->flags, le->pid);
-	return 0;
-}
-
 static int autofs_open_pipefd(struct file_desc *d, int *new_fd)
 {
 	struct fdinfo_list_entry *fle = file_master(d);
@@ -925,7 +903,9 @@ static int autofs_create_pipe(struct pstree_item *task, autofs_info_t *i,
 		return -1;
 	fe->type = FD_TYPES__AUTOFS_PIPE;
 
-	return autofs_create_fle(task, fe, &i->pi.d);
+	pr_info("autofs: adding pipe fd %d, flags %#x to %d (with post_open)\n",
+		fe->fd, fe->flags, vpid(task));
+	return collect_fd(vpid(task), fe, rsti(task));
 }
 
 static int autofs_add_mount_info(void *data)


More information about the CRIU mailing list