1*63d1fd59SEnji Cooper /* $NetBSD: t_snapshot.c,v 1.4 2017/01/13 21:30:40 christos Exp $ */ 257718be8SEnji Cooper 357718be8SEnji Cooper #include <sys/types.h> 457718be8SEnji Cooper #include <sys/mount.h> 557718be8SEnji Cooper 657718be8SEnji Cooper #include <rump/rump.h> 757718be8SEnji Cooper #include <rump/rump_syscalls.h> 857718be8SEnji Cooper 957718be8SEnji Cooper #include <fs/tmpfs/tmpfs_args.h> 1057718be8SEnji Cooper #include <msdosfs/msdosfsmount.h> 1157718be8SEnji Cooper 1257718be8SEnji Cooper #include <atf-c.h> 1357718be8SEnji Cooper #include <err.h> 1457718be8SEnji Cooper #include <fcntl.h> 1557718be8SEnji Cooper #include <stdio.h> 1657718be8SEnji Cooper #include <stdlib.h> 1757718be8SEnji Cooper #include <string.h> 1857718be8SEnji Cooper #include <unistd.h> 1957718be8SEnji Cooper 20*63d1fd59SEnji Cooper #include "h_macros.h" 2157718be8SEnji Cooper 2257718be8SEnji Cooper #define IMGNAME "msdosfs.img" 2357718be8SEnji Cooper #define NEWFS "newfs_msdos -C 5M " IMGNAME 2457718be8SEnji Cooper #define FSCK "fsck_msdos -fn" 2557718be8SEnji Cooper #define BAKNAME "/stor/snap" 2657718be8SEnji Cooper 2757718be8SEnji Cooper static void 2857718be8SEnji Cooper mount_diskfs(const char *fspec, const char *path) 2957718be8SEnji Cooper { 3057718be8SEnji Cooper struct msdosfs_args margs; 3157718be8SEnji Cooper 3257718be8SEnji Cooper memset(&margs, 0, sizeof(margs)); 3357718be8SEnji Cooper margs.fspec = __UNCONST(fspec); 3457718be8SEnji Cooper margs.version = MSDOSFSMNT_VERSION; 3557718be8SEnji Cooper 3657718be8SEnji Cooper if (rump_sys_mount(MOUNT_MSDOS, path, 0, &margs, sizeof(margs)) == -1) 3757718be8SEnji Cooper err(1, "mount msdosfs %s", path); 3857718be8SEnji Cooper } 3957718be8SEnji Cooper 4057718be8SEnji Cooper static void 4157718be8SEnji Cooper begin(void) 4257718be8SEnji Cooper { 4357718be8SEnji Cooper struct tmpfs_args targs = { .ta_version = TMPFS_ARGS_VERSION, }; 4457718be8SEnji Cooper 4557718be8SEnji Cooper if (rump_sys_mkdir("/stor", 0777) == -1) 4657718be8SEnji Cooper atf_tc_fail_errno("mkdir /stor"); 4757718be8SEnji Cooper if (rump_sys_mount(MOUNT_TMPFS, "/stor", 0, &targs,sizeof(targs)) == -1) 4857718be8SEnji Cooper atf_tc_fail_errno("mount storage"); 4957718be8SEnji Cooper } 5057718be8SEnji Cooper 5157718be8SEnji Cooper #include "../common/snapshot.c" 52