[CRIU] [PATCH 2/9] files: Add ability to use read link in dump_one_reg_file

Cyrill Gorcunov gorcunov at openvz.org
Fri May 17 09:20:07 EDT 2013


To be able to dump procfs namespace entries we will need to
analyze the link name first and then figure out if the file
referred indeed a procfs entry or it's plain regular file.

This means we read link early, and to escape double reading
of same link, once we read it we remember it in fd_parms
structure which we pass to dump_one_reg_file.

Still the dump_one_reg_file is not solely used from inside
of dump_one_file, but from a number of other places (fifo,
special files) where fd_parms is filled only partially
and fill_fd_params is not even called. Thus dump_one_reg_file
must be ready for such scenario and read the link name by own
if the caller has not provided one.

To achieve all this we do

 - extend fd_parms structure to have a reference on a new
   fd_link structure, thus if caller already read the link
   name it might assign the reference and call for dump_one_reg_file

 - tune up dump_one_reg_file to fill own copy of fd_link
   structure if the caller has not provied one

Important: Because fdtype_ops::dump declares "const struct fd_parms *p"
argument, I can't assign link inside dump_one_reg_file with fill_fdlink
help (otherwise it leads to incorrect result when members declared as
const are written). Thus we do use struct fd_link pointer explicitly.

Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 files-reg.c     | 25 +++++++++++++------------
 files.c         | 28 +++++++++++++++++++++++++++-
 include/files.h |  9 +++++++++
 3 files changed, 49 insertions(+), 13 deletions(-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-files-Add-ability-to-use-read-link-in-dump_one_reg_f.patch
Type: text/x-patch
Size: 3321 bytes
Desc: not available
URL: <http://lists.openvz.org/pipermail/criu/attachments/20130517/cb973d08/attachment.bin>


More information about the CRIU mailing list