No description
Find a file
Oleg Nesterov b66728ef14 parse_mountinfo: fix and simplify the usage of r_fstype
1. parse_mountinfo() forgets to free(fst) if parse_mountinfo_ent()
   succeeds.

2. The usage of fst/r_fstype is ovecomplicated for no reason.

Just change the parse_mountinfo() paths to populate/use/free this
fsname unconditionally, and move the ownership to the caller. There
is no reason to check FSTYPE__UNSUPPORTED and/or fallback to ->name.

Better yet, we could even turn fsname into the local "char []" and
avoid %ms and free(), but then we would need to pass the length of
this buffer to parse_mountinfo_ent().

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-03-30 13:20:37 +03:00
arch dump/x86: sanitize the ERESTART_RESTARTBLOCK -> EINTR transition 2015-03-26 14:10:32 +03:00
contrib Try to determine the bind mount file for dockerinit 2015-01-12 13:20:06 +03:00
Documentation doc: Remove -t from restore command 2015-03-19 13:18:13 +03:00
include service: add ability to set inherit file descriptors (v3) 2015-03-30 13:09:25 +03:00
lib libcriu: add cr_errno support 2014-12-22 17:38:52 +03:00
pie pie: parasite -- Drop dangling \Tab 2015-03-13 14:33:16 +03:00
protobuf service: add ability to set inherit file descriptors (v3) 2015-03-30 13:09:25 +03:00
pycriu crit: Print IP addresses in pretty mode 2015-01-29 18:47:30 +03:00
scripts travis: add python-ipaddr as a dep 2015-02-09 14:07:07 +03:00
test zdtm: Don't modify global @errno in test_msg 2015-03-27 14:06:23 +03:00
.gitignore crit: add --format hex option 2015-01-19 18:13:55 +04:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
.travis.yml travis: add python-ipaddr as a dep 2015-02-09 14:07:07 +03:00
action-scripts.c scripts: Exit early if no scripts passed 2014-11-14 15:51:28 +04:00
aio.c aio: Fix vma->start printing format on arm 2014-12-30 15:38:25 +03:00
bfd.c bfd: Don't leak image-open flags into bfdopen 2015-03-16 15:58:14 +03:00
cgroup.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
COPYING Add LGPL licence for library directory 2013-04-01 12:29:06 +04:00
cr-check.c check: Do not print "Looks good" message regardless of loglevel 2015-01-27 16:16:01 +03:00
cr-dedup.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03:00
cr-dump.c security: create separate security.h header 2015-02-10 16:53:54 +03:00
cr-errno.c cr-errno: initial commit 2014-12-19 18:58:46 +03:00
cr-exec.c dump: remove useless arguments from seize_task() 2014-11-07 17:14:54 +04:00
cr-restore.c cgroup: call fini_cgroup() on error paths 2015-03-26 14:11:24 +03:00
cr-service.c service: add ability to set inherit file descriptors (v3) 2015-03-30 13:09:25 +03:00
cr-show.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
crit crit: gather and parse arguments in a proper way 2015-02-09 14:08:22 +03:00
crtools crtools: rename binary to criu 2013-04-30 20:17:55 +04:00
crtools.c service: add ability to set inherit file descriptors (v3) 2015-03-30 13:09:25 +03:00
Dockerfile test: add ability to execute tests in a docker container 2015-03-24 11:05:47 +03:00
eventfd.c img: Rename fdset -> imgset 2014-09-30 21:48:10 +04:00
eventpoll.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
fifo.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
file-ids.c files-ids: generate id-s accoding with mnt_id, st->st_dev and st->st_ino 2014-04-21 22:39:28 +04:00
file-lock.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
files-ext.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
files-reg.c reg-files: skip size for O_APPEND|O_WRONLY files, v2 2015-03-20 16:29:37 +03:00
files.c service: add ability to set inherit file descriptors (v3) 2015-03-30 13:09:25 +03:00
fsnotify.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
image-desc.c criu: add constants about user namespaces 2014-11-07 17:00:32 +04:00
image.c img: Don't create empty images 2015-03-16 15:58:32 +03:00
ipc_ns.c sysctl: Remove dead CTL_PRINT|_SHOW code 2015-01-27 16:18:27 +03:00
irmap.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
kcmp-ids.c kcmp: Fix ret code comparison 2014-04-22 12:51:15 +04:00
kerndat.c kerndat: Mark get_last_cap static 2015-01-23 20:19:09 +03:00
libnetlink.c nlk: Add error callback to do_rtnl_req 2015-01-22 18:54:37 +03:00
log.c log: Don't modify global @errno in __print_on_level 2015-03-27 14:06:20 +03:00
Makefile test: add ability to execute tests in a docker container 2015-03-24 11:05:47 +03:00
Makefile.config crtools: check for setproctitle_init 2014-09-02 16:14:39 +04:00
Makefile.crtools aio: Dump AIO rings 2014-12-26 18:13:36 +03:00
Makefile.inc install: install criu-service logrotate config 2014-02-18 12:39:50 +04:00
mem.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
mount.c mount: always report ->mnt_id as decimal 2015-03-27 14:03:04 +03:00
namespaces.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
net.c sockets: define NETLINK_SOCK_DIAG in sockets.h 2015-01-23 15:40:02 +03:00
netfilter.c iptables: use cr_system instead of system 2013-10-02 20:09:37 +04:00
page-pipe.c log: Use pr_quelled helper 2014-09-03 20:56:58 +04:00
page-read.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
page-xfer.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03:00
pagemap-cache.c pagemap-cache: Use page.h helpers 2014-02-21 16:29:41 +04:00
parasite-syscall.c aio: Dump AIO rings 2014-12-26 18:13:36 +03:00
pipes.c fd: Factor out inheriting FDs code 2015-01-12 14:46:51 +03:00
plugin.c plugin: Rework plugins API, v2 2014-09-03 20:48:36 +04:00
proc_parse.c parse_mountinfo: fix and simplify the usage of r_fstype 2015-03-30 13:20:37 +03:00
protobuf-desc.c criu: add constants about user namespaces 2014-11-07 17:00:32 +04:00
protobuf.c img: Don't create empty images 2015-03-16 15:58:32 +03:00
pstree.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
ptrace.c ptrace: call wait only if PTRACE_SEIZE was successful 2015-02-24 21:44:23 +03:00
rbtree.c code: Fix spaced indentation where found 2012-08-11 21:36:03 +04:00
README Update README file so that it looks more informative on github front page 2014-01-24 20:42:08 +04:00
rst-malloc.c whitespace-at-eol cleanup 2013-12-12 10:00:45 +04:00
sd-daemon.c systemd socket activation support 2013-12-12 09:58:50 +04:00
sd-daemon.h systemd socket activation support 2013-12-12 09:58:50 +04:00
security.c security: add cr_fchown 2015-02-10 16:54:31 +03:00
shmem.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03:00
sigframe.c sigframe: cast the pointer to the field ucontext::uc_sigmask to k_rtsigset_t 2014-04-08 15:36:09 +04:00
signalfd.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-inet.c Do not call listen() when SO_REUSEADDR is off 2015-02-16 13:18:32 +03:00
sk-netlink.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-packet.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-queue.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
sk-tcp.c Do not call listen() when SO_REUSEADDR is off 2015-02-16 13:18:32 +03:00
sk-unix.c userns: save uid-s from a target userns (v2) 2014-11-07 17:15:45 +04:00
sockets.c sk: Restore sockets bufs via usernsd 2015-02-13 16:11:38 +04:00
stats.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
string.c string: Add strlcat helper 2013-11-29 15:36:07 +04:00
sysctl.c sysctl: Remove dead CTL_PRINT|_SHOW code 2015-01-27 16:18:27 +03:00
sysfs_parse.c Ignore mnt_id value for AUFS file descriptors. 2015-02-09 14:07:40 +03:00
timerfd.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
tty.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
tun.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
util.c image: Add comments about VMA_AREA constants and drop FORCE_READ flag 2015-03-04 17:48:47 +03:00
uts_ns.c ns: Factor out namespace switching call 2014-09-30 21:54:11 +04:00

criu
====

An utility to checkpoint/restore tasks. Using this tool, you can
freeze a running application (or part of it) and checkpoint it to
a hard drive as a collection of files. You can then use the files
to restore and run the application from the point it was frozen
at. The distinctive feature of the CRIU project is that it is
mainly implemented in user space.

The project home is at http://criu.org

Pages worth starting with are
* Kernel configuration, compilation, etc: http://criu.org/Installation
* A simple example of usage: http://criu.org/Simple_loop
* More sophisticated example with graphical app: http://criu.org/VNC