{"push_id":630649396,"size":19,"distinct_size":19,"ref":"refs/heads/master","head":"323726b7f18720f8411559cab29bcdfd13564c7c","before":"8ec2ea828828aba0929381b99ceeb23eaa597f11","commits":[{"sha":"eff166e98ce4e8fa39cab12181b42c831c6f79c7","author":{"email":"c9a32589e048e044184536f7ac71ef92fe82df3e@parallels.com","name":"Pavel Emelyanov"},"message":"fdinfo: Don't hide fdinfos' restore errors\n\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/eff166e98ce4e8fa39cab12181b42c831c6f79c7"},{"sha":"b87ae730fc27b8316f51de634d92323a19564e87","author":{"email":"c9a32589e048e044184536f7ac71ef92fe82df3e@parallels.com","name":"Pavel Emelyanov"},"message":"netdev: Fix detection of device conf restore failure\n\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/b87ae730fc27b8316f51de634d92323a19564e87"},{"sha":"dfa96b5514dfd54900ea3212581e902b4a37c56c","author":{"email":"3e8c75167f9f00ca74287a4609f1507a2696e07e@odin.com","name":"Pavel Tikhomirov"},"message":"netdevconf: remove redundant and unsafe check\n\nwe don't need this check as just after it we have:\nif (ret)\n\tbreak;\nwhich safely unpackes nde, and closes nlsk and img in case of error\n\nps: sorry for inconveniences caused by my patchset\nSigned-off-by: Pavel Tikhomirov <ptikhomirov@odin.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/dfa96b5514dfd54900ea3212581e902b4a37c56c"},{"sha":"71398f5cf5e05453bc3594cda56c003343f7f811","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"mnt: add matching on fs kernel subtypes\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/71398f5cf5e05453bc3594cda56c003343f7f811"},{"sha":"f9f99573d74dc8c002871d6f54adcdcdba251d45","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"mnt: relax constraints on fuse mounts\n\n1. If a fuse connection is present, but there are no fuse mounts of that type\n   in the mount namespace, don't refuse to dump.\n2. If there are mounts of that type in the container but they are external,\n   we're going to bind them anyway, so there's no fuse-specific things that\n   need to be done, so it is safe to dump.\n\nv2: check that the fstype is fuse as well\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/f9f99573d74dc8c002871d6f54adcdcdba251d45"},{"sha":"7e657d042d68d4d0fc4dda03b6f12f75410a80d8","author":{"email":"c9a32589e048e044184536f7ac71ef92fe82df3e@parallels.com","name":"Pavel Emelyanov"},"message":"mount: Rename find_fstype_by_name's vars to simplify further patching\n\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/7e657d042d68d4d0fc4dda03b6f12f75410a80d8"},{"sha":"1f9798a6ae42c23e4ead9e8b7d6b0bdbbcfb9e32","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"reserve the extra room in fstypes[]\n\nPreparation. Enlarge fstypes[] to make it possible to add the new\nfstype's dynamically.\n\nThis means ths find_fstype_by_name() and decode_fstype() need the\nadditional ->name == NULL check to terminate the search.\n\nAlso change them to start with \"i == 1\", we rely on the fact that\nfstypes[0] is FSTYPE__UNSUPPORTED anyway.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/1f9798a6ae42c23e4ead9e8b7d6b0bdbbcfb9e32"},{"sha":"38e148e5029f8b7bc22c51c40939be6ed3aefcc9","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"introduce fsname_is_auto(name) and FSTYPE__AUTO\n\nThe comment in find_fstype_by_name() says:\n\n\tjust mounting anything is wrong\n\nand this is true in general, but:\n\n\talmost every fs has its own features\n\nthis is not true in a sense that a lot of supported filesystems do not\nneed any special processing: FSTYPE__PROC, FSTYPE__SYSFS, and more. More\nimportantly, this logic does not allow to spicify from the command line\nthat (say) currently unsupported hugetlbfs can \"just work\", do_new_mount()\nshould only pass the right name/options.\n\nThis patch adds the new FSTYPE__AUTO code, find_fstype_by_name(name) adds\nthe new entry if fsname_is_auto(name) returns true. We do not care that\ndifferent fstype's can have the same FSTYPE__AUTO code, fstype->code has\nno meaning unless we need to do something special with this fs, but in\nthis case it should not be FSTYPE__AUTO by definition.\n\nNote: currently find_fstype_by_name() just returns true, it is obviously\npointless to \"dump\" until we teach \"restore\" to handle FSTYPE__AUTO.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/38e148e5029f8b7bc22c51c40939be6ed3aefcc9"},{"sha":"039cf95d59d9611c6cadb284fa47365f6a967bdb","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"introduce __fsname_is_auto(name, force_auto)\n\nSimple preparation to simplify the review of the next patch. Turn\nfind_fstype_by_name(name) into __find_fstype_by_name(name, force_auto)\nand reimplement find_fstype_by_name() as a trivial wrapper on top.\n\nThis allows \"restore\" to specify that this particular fsname was treated\nas FSTYPE__AUTO by \"dump\".\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/039cf95d59d9611c6cadb284fa47365f6a967bdb"},{"sha":"eaf3a03ced3ec9e704cabce4fb90b05c8b3655dd","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"dump/restore fstype->name if FSTYPE__AUTO\n\nAdd the new mnt_entry->fsname member and change dump_one_mountpoint()\nto save pm->fstype->name if fstype == FSTYPE__AUTO.\n\nChange collect_mnt_from_image() to pass this ->fsname to decode_fstype()\nwhich falls back to __find_fstype_by_name(fsname, true) if FSTYPE__AUTO.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/eaf3a03ced3ec9e704cabce4fb90b05c8b3655dd"},{"sha":"e2c38245c613df5e36dcf0253c7652f928e46abf","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"introduce --enable-fs cli option\n\nFinally add --enable-fs option to specify the comma separated list of\nfilesystem names which should be treated as FSTYPE_AUTO.\n\nNote: obviously this option is not safe, use at your own risk. \"dump\"\nwill always succeed if the mntpoint is auto, but \"restore\" can fail or\ndo something wrong if mount(src, mountpoint, flags, options) can not\nactually \"just work\" as FSTYPE_AUTO logic expects.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/e2c38245c613df5e36dcf0253c7652f928e46abf"},{"sha":"aebfabb5ad5d9e4291295812944ac49f9dd2854b","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"mnt: add --ext-mount-map auto option\n\nWhen this option is specified, if an external (private) bind mount is not\nspecified by --ext-mount-map KEY:VAL then it is attempted to be resolved\nautomatically.\n\nv2: introduce find_best_external_match, which looks for the best match based on\n    sharing/slave ids; don't try to resolve fsroot_mounted() mountpoints\nv3: get rid of really_collect_self_mounts\nv4: get rid of fsroot_mounted() check when autodetecting external mounts\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/aebfabb5ad5d9e4291295812944ac49f9dd2854b"},{"sha":"0afffc9dc1daee21ef2ee9161a7eb2813a14553a","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"mnt: add --enable-external-sharing flag\n\nWith this flag, external shared bind mounts are attempted to be resolved\nautomatically.\n\nv2: don't always assume when the sharing matches that the mount matches\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/0afffc9dc1daee21ef2ee9161a7eb2813a14553a"},{"sha":"fcae4f395402a491b66e3b1d5d0db79c5f8cfe6a","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"mnt: add --enable-external-masters option\n\nThis option enables external (slave) bind mounts to be resolved.\n\nv2: don't always assume that when the master id matches, the mounts match\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/fcae4f395402a491b66e3b1d5d0db79c5f8cfe6a"},{"sha":"be0a2c251653b8f4421161fe6d67527789908b6d","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"doc: add documentation for new mount flags\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/be0a2c251653b8f4421161fe6d67527789908b6d"},{"sha":"b508ebcb502233b8dd17760383489772ab0ac41b","author":{"email":"10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com","name":"Tycho Andersen"},"message":"opts: fix formatting for options\n\nSigned-off-by: Tycho Andersen <tycho.andersen@canonical.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/b508ebcb502233b8dd17760383489772ab0ac41b"},{"sha":"ec5b0d849d7007d336cd7835d110a107d738ff80","author":{"email":"c9a32589e048e044184536f7ac71ef92fe82df3e@parallels.com","name":"Pavel Emelyanov"},"message":"test: Rework the ext mount plugin test\n\nThe existing set of shell scripts do hard-to-debug things and mess\nwith the root filesystem. We can make it better.\n\nFirst, not to play with the system / the process that will be run in\na new mount namespace is statically compiled .c file. And this \"init\"\ndoes a very simple thing -- waits for SIGTERM and check that the\ngiven filepath contains the given string.\n\nSecond, the namespace's root will be some subdir, instead of system\n/ bind-mount-ed into a subdir. This makes it easier to keep things\ntogether and makes 100% sure the external bind mount cannot be\naccessed by custom path.\n\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/ec5b0d849d7007d336cd7835d110a107d738ff80"},{"sha":"2085e078fa50831784a43c10c408ddc57e8c32d5","author":{"email":"c9a32589e048e044184536f7ac71ef92fe82df3e@parallels.com","name":"Pavel Emelyanov"},"message":"test: Add test for ext-mount-map option\n\nIt mostly reuses the infrastructure for plugin testing.\n\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/2085e078fa50831784a43c10c408ddc57e8c32d5"},{"sha":"323726b7f18720f8411559cab29bcdfd13564c7c","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"make resolve_source() more friendly to FSTYPE__AUTO mounts\n\nresolve_source() insists on kdev_major() == 0, and this makes sense.\nHowever, at least FSTYPE__AUTO can try to use mi->source as a block\ndevice and pray it will work.\n\n[ Also bout this change from Oleg:\n\nLet me send another (last) functional change before the promised\ncleanups we discussed.\n\nTo remind, without this patch I still can't dump/restore /home and\n/boot on my testing machine. --enable-fs xfs \"works\" in a sense that\n\"dump\" succeeds. But \"restore\" fails.\n\nHowever. Lets forget this for the moment. To me resolve_source() looks\njust wrong. Sure, I agree, it is not safe to blindly use mi->source if\nkdev_major() != 0. But this means that we should not have dumped this\nmountpoint, simply because we can't restore it.\n\nYes, currently this works because fstypes[] contains only the diskless\nfilesystems, but still.\n\nSo this probably needs more cleanups too, and this patch doesn't make\nthis logic look better.\n\nTo me, we should do something like\n\n\tstatic char *resolve_source(struct mount_info *mi)\n\t{\n\t\tif (kdev_major(mi->s_dev) == 0)\n\t\t\t/*\n\t\t\t * Anonymous block device. Kernel creates them for\n\t\t\t * diskless mounts.\n\t\t\t */\n\t\t\treturn mi->source;\n\n\t\tif (mi->fstype->code != FSTYPE__AUTO) {\n\t\t\tpr_err(\"OOPS! something is wrong!!!\\n\");\n\t\t\treturn NULL;\n\t\t}\n\n\t\t// OK, this is FSTYPE__AUTO, it should \"just work\"\n\t\t// by definition. Or the user should blame himself.\n\n\t\tstruct stat st;\n\n\t\tif (stat(mi->source, &st) || !S_ISBLK(st.st_mode) ||\n\t\t    major(st.st_rdev) != kdev_major(mi->s_dev) ||\n\t\t    minor(st.st_rdev) != kdev_minor(mi->s_dev))\n\t\t\tpr_warn(\"Hmm, can't verify blkdev. Lets see if mount will work...\\n\");\n\n\t\treturn mi->source;\n\t}\n\nBut this patch only does a minimal change to make FSTYPE__AUTO work\nwith blkdev.\n\n]\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Pavel Emelyanov <xemul@parallels.com>","distinct":true,"url":"https://api.github.com/repos/cyrillos/criu/commits/323726b7f18720f8411559cab29bcdfd13564c7c"}]}