aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2003-11-16 08:01:58 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2003-11-16 08:01:58 +0000
commitd46b52859a428843e008ff82b223f7f0af1fb44b (patch)
tree72c2888172ce60ae1610bedac4b0351f3999c438
parent5e36d52bef6468d68a7011d16cb410c6a29b023f (diff)
Notes
-rw-r--r--sbin/dump/main.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/sbin/dump/main.c b/sbin/dump/main.c
index 7940063108ba6..432d185b21412 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];
+ char snapname[BUFSIZ], snapcmd[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;
+ 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",