#include #include #include #include #include int main(int argc, char **argv) { int tree_fd; int ret; if (argc != 3) { fprintf(stderr, "usage: %s SOURCE MOUNTPOINT\n", argv[0]); return 2; } tree_fd = open_tree(AT_FDCWD, argv[1], OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | AT_SYMLINK_NOFOLLOW); if (tree_fd < 0) { fprintf(stderr, "open_tree(%s): %m\n", argv[1]); return 1; } ret = move_mount(tree_fd, "", AT_FDCWD, argv[2], MOVE_MOUNT_F_EMPTY_PATH); if (ret) { fprintf(stderr, "move_mount(%s): %m\n", argv[2]); return 1; } return 0; }