[CRIU] [PATCH 2/2] lock: parse the lock field in fdinfo if it's avaliable
Pavel Emelyanov
xemul at parallels.com
Wed Apr 22 12:16:08 PDT 2015
On 04/20/2015 05:41 PM, Andrey Vagin wrote:
> @@ -1282,6 +1284,44 @@ static int parse_fdinfo_pid_s(int pid, int fd, int type,
> continue;
> }
>
> + if (fdinfo_field(str, "lock")) {
> + struct file_lock *fl;
> + struct fdinfo_common *fdinfo = arg;
> +
> + if (type != FD_TYPES__UND)
> + continue;
> +
> + fl = alloc_file_lock();
> + if (!fl) {
> + pr_perror("Alloc file lock failed!");
> + ret = -1;
> + goto parse_err;
> + }
> +
> + if (parse_file_lock_buf(str + 6, fl, 0)) {
> + xfree(fl);
> + ret = -1;
> + goto parse_err;
> + }
> +
> + pr_info("lockinfo: %lld:%d %x %d %02x:%02x:%ld %lld %s\n",
> + fl->fl_id, fl->fl_kind, fl->fl_ltype,
> + fl->fl_owner, fl->maj, fl->min, fl->i_no,
> + fl->start, fl->end);
> +
> +
> + if (fl->fl_kind == FL_UNKNOWN) {
> + pr_err("Unknown file lock!\n");
> + ret = -1;
> + xfree(fl);
> + goto parse_err;
> + }
> +
> + fl->real_owner = fdinfo->owner;
> + fl->owners_fd = fd;
> + list_add_tail(&fl->list, &file_lock_list);
Is it enough for dump? Don't we need to make note_file_lock() skip its
magic in case of kerndat.has_lock?
> + }
> +
> if (type == FD_TYPES__UND)
> continue;
>
More information about the CRIU
mailing list