]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
c/r: add support for ghost-limit in CRIU 1089/head
authorTycho Andersen <tycho.andersen@canonical.com>
Tue, 19 Jul 2016 20:27:26 +0000 (14:27 -0600)
committerTycho Andersen <tycho.andersen@canonical.com>
Tue, 19 Jul 2016 20:27:26 +0000 (14:27 -0600)
This is an old option that we probably should have exposed long ago :)

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
src/lxc/criu.c
src/lxc/lxccontainer.h

index 804fd41b2513dcc7b20817be4105c641c085532c..d330d72479b04e2edd68369ba93ea59fe24f988f 100644 (file)
@@ -169,6 +169,10 @@ static void exec_criu(struct criu_opts *opts)
                /* --force-irmap */
                if (!opts->user->preserves_inodes)
                        static_args++;
+
+               /* --ghost-limit 1024 */
+               if (opts->user->ghost_limit)
+                       static_args += 2;
        } else if (strcmp(opts->action, "restore") == 0) {
                /* --root $(lxc_mount_point) --restore-detached
                 * --restore-sibling --pidfile $foo --cgroup-root $foo
@@ -300,6 +304,19 @@ static void exec_criu(struct criu_opts *opts)
                if (!opts->user->preserves_inodes)
                        DECLARE_ARG("--force-irmap");
 
+               if (opts->user->ghost_limit) {
+                       char ghost_limit[32];
+
+                       ret = sprintf(ghost_limit, "%lu", opts->user->ghost_limit);
+                       if (ret < 0 || ret >= sizeof(ghost_limit)) {
+                               ERROR("failed to print ghost limit %lu", opts->user->ghost_limit);
+                               goto err;
+                       }
+
+                       DECLARE_ARG("--ghost-limit");
+                       DECLARE_ARG(ghost_limit);
+               }
+
                /* only for final dump */
                if (strcmp(opts->action, "dump") == 0 && !opts->user->stop)
                        DECLARE_ARG("--leave-running");
index e4915d2ff18b8ab92f2bac1faa5aa5d5929a6407..06bec58c6f708233e80947d7e057ab1009397374 100644 (file)
@@ -902,6 +902,12 @@ struct migrate_opts {
         * unconditionally disable this feature. In-flight connections are
         * not fully established TCP connections: SYN, SYN-ACK */
        bool disable_skip_in_flight;
+
+       /* This is the maximum file size for deleted files (which CRIU calls
+        * "ghost" files) that will be handled. 0 indicates the CRIU default,
+        * which at this time is 1MB.
+        */
+       uint64_t ghost_limit;
 };
 
 /*!