summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'sbin')
-rw-r--r--sbin/dump/main.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/sbin/dump/main.c b/sbin/dump/main.c
index 7940063..432d185 100644
--- a/sbin/dump/main.c
+++ b/sbin/dump/main.c
@@ -317,20 +317,16 @@ main(int argc, char *argv[])
msg("WARNING: %s\n",
"should use -L when dumping live filesystems!");
} else {
- struct ufs_args args;
- char snapname[BUFSIZ];
-
- snprintf(snapname, sizeof snapname, "%s/.dump_snapshot",
- mntpt);
- args.fspec = snapname;
- while (mount("ffs", mntpt,
- mntflags | MNT_UPDATE | MNT_SNAPSHOT,
- &args) < 0) {
- if (errno == EEXIST && unlink(snapname) == 0)
- continue;
+ char snapname[BUFSIZ], snapcmd[BUFSIZ];
+
+ snprintf(snapname, sizeof snapname,
+ "%s/.snap/dump_snapshot", mntpt);
+ snprintf(snapcmd, sizeof snapcmd,
+ "mksnap_ffs %s %s", mntpt, snapname);
+ unlink(snapname);
+ if (system(snapcmd) != 0)
errx(X_STARTUP, "Cannot create %s: %s\n",
snapname, strerror(errno));
- }
if ((diskfd = open(snapname, O_RDONLY)) < 0) {
unlink(snapname);
errx(X_STARTUP, "Cannot open %s: %s\n",
OpenPOWER on IntegriCloud