diff options
| author | Kirk McKusick <mckusick@FreeBSD.org> | 2003-11-16 08:01:58 +0000 |
|---|---|---|
| committer | Kirk McKusick <mckusick@FreeBSD.org> | 2003-11-16 08:01:58 +0000 |
| commit | d46b52859a428843e008ff82b223f7f0af1fb44b (patch) | |
| tree | 72c2888172ce60ae1610bedac4b0351f3999c438 | |
| parent | 5e36d52bef6468d68a7011d16cb410c6a29b023f (diff) | |
Notes
| -rw-r--r-- | sbin/dump/main.c | 18 |
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", |
