Commit fa989970 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Andrei Vagin

epoll: Save fields of target files in eventpoll_tfd_entry

We will use them to fast lookup of targets files.
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent ca8144b7
......@@ -1762,9 +1762,23 @@ static int parse_fdinfo_pid_s(int pid, int fd, int type, void *arg)
eventpoll_tfd_entry__init(e);
ret = sscanf(str, "tfd: %d events: %x data: %"PRIx64,
&e->tfd, &e->events, &e->data);
if (ret != 3) {
ret = sscanf(str, "tfd: %d events: %x data: %llx"
" pos:%lli ino:%lx sdev:%x",
&e->tfd, &e->events, (long long *)&e->data,
(long long *)&e->pos, (long *)&e->inode,
&e->dev);
if (ret < 3 || ret > 6) {
eventpoll_tfd_entry__free_unpacked(e, NULL);
goto parse_err;
} else if (ret == 3) {
e->has_dev = false;
e->has_inode = false;
e->has_pos = false;
} else if (ret == 6) {
e->has_dev = true;
e->has_inode = true;
e->has_pos = true;
} else if (ret < 6) {
eventpoll_tfd_entry__free_unpacked(e, NULL);
goto parse_err;
}
......
......@@ -7,6 +7,11 @@ message eventpoll_tfd_entry {
required uint32 tfd = 2;
required uint32 events = 3;
required uint64 data = 4;
/* to find dup'ed target files */
optional uint32 dev = 5;
optional uint64 inode = 6;
optional uint64 pos = 7;
}
message eventpoll_file_entry {
......
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