Commit f382fcf8 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Pavel Emelyanov

eventfd: Use eventfd_file_entry in eventfd_file_info as a reference

We will need it for protobuf transition.
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent c553627d
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include "log.h" #include "log.h"
struct eventfd_file_info { struct eventfd_file_info {
struct eventfd_file_entry efe; struct eventfd_file_entry *efe;
struct file_desc d; struct file_desc d;
}; };
...@@ -118,16 +118,16 @@ static int eventfd_open(struct file_desc *d) ...@@ -118,16 +118,16 @@ static int eventfd_open(struct file_desc *d)
info = container_of(d, struct eventfd_file_info, d); info = container_of(d, struct eventfd_file_info, d);
tmp = eventfd(info->efe.counter, 0); tmp = eventfd(info->efe->counter, 0);
if (tmp < 0) { if (tmp < 0) {
pr_perror("Can't create eventfd %#08x", pr_perror("Can't create eventfd %#08x",
info->efe.id); info->efe->id);
return -1; return -1;
} }
if (rst_file_params(tmp, &info->efe.fown, info->efe.flags)) { if (rst_file_params(tmp, &info->efe->fown, info->efe->flags)) {
pr_perror("Can't restore params on eventfd %#08x", pr_perror("Can't restore params on eventfd %#08x",
info->efe.id); info->efe->id);
goto err_close; goto err_close;
} }
...@@ -159,16 +159,21 @@ int collect_eventfd(void) ...@@ -159,16 +159,21 @@ int collect_eventfd(void)
if (!info) if (!info)
break; break;
ret = read_img_eof(image_fd, &info->efe); info->efe = xmalloc(sizeof(*info->efe));
if (!info->efe)
break;
ret = read_img_eof(image_fd, info->efe);
if (ret < 0) if (ret < 0)
goto err; goto err;
else if (!ret) else if (!ret)
break; break;
pr_info_eventfd("Collected ", &info->efe); pr_info_eventfd("Collected ", info->efe);
file_desc_add(&info->d, info->efe.id, &eventfd_desc_ops); file_desc_add(&info->d, info->efe->id, &eventfd_desc_ops);
} }
err: err:
xfree(info ? info->efe : NULL);
xfree(info); xfree(info);
close(image_fd); close(image_fd);
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