Commit bed13a58 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

proc_parse: parse mnt_id from /proc/PID/fdinfo/FD

It will be used for restoring files from proper mounts.
Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 8bcffef6
......@@ -205,7 +205,7 @@ static int fill_fd_params(struct parasite_ctl *ctl, int fd, int lfd,
{
int ret;
struct statfs fsbuf;
struct fdinfo_common fdinfo;
struct fdinfo_common fdinfo = { .mnt_id = -1 };
if (fstat(lfd, &p->stat) < 0) {
pr_perror("Can't stat fd %d", lfd);
......
......@@ -156,6 +156,7 @@ union fdinfo_entries {
struct fdinfo_common {
off64_t pos;
int flags;
int mnt_id;
};
extern int parse_fdinfo(int fd, int type,
......
......@@ -1021,7 +1021,8 @@ static int parse_fdinfo_pid_s(char *pid, int fd, int type,
union fdinfo_entries entry;
if (fdinfo_field(str, "pos") ||
fdinfo_field(str, "flags")) {
fdinfo_field(str, "flags") ||
fdinfo_field(str, "mnt_id")) {
unsigned long long val;
struct fdinfo_common *fdinfo = arg;
......@@ -1035,6 +1036,8 @@ static int parse_fdinfo_pid_s(char *pid, int fd, int type,
fdinfo->pos = val;
else if (fdinfo_field(str, "flags"))
fdinfo->flags = val;
else if (fdinfo_field(str, "mnt_id"))
fdinfo->mnt_id = val;
entry_met = true;
continue;
......
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