summaryrefslogtreecommitdiffstats
path: root/sbin/mksnap_ffs/mksnap_ffs.c
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2004-01-27 18:28:11 +0000
committermckusick <mckusick@FreeBSD.org>2004-01-27 18:28:11 +0000
commit38230899d99297752409d42db82af87b0ac410ce (patch)
tree89a09346225450ccc4297e950d81d9ea11a5051e /sbin/mksnap_ffs/mksnap_ffs.c
parentb0561e00e3c720de08f0b36b31eff77405d95c8f (diff)
downloadFreeBSD-src-38230899d99297752409d42db82af87b0ac410ce.zip
FreeBSD-src-38230899d99297752409d42db82af87b0ac410ce.tar.gz
Preserve acls option on mounts when taking a snapshot.
Submitted by: Wiktor Niesiobedzki <freebsd-lists@w.evip.pl>
Diffstat (limited to 'sbin/mksnap_ffs/mksnap_ffs.c')
-rw-r--r--sbin/mksnap_ffs/mksnap_ffs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sbin/mksnap_ffs/mksnap_ffs.c b/sbin/mksnap_ffs/mksnap_ffs.c
index 13186b4..06aeca3 100644
--- a/sbin/mksnap_ffs/mksnap_ffs.c
+++ b/sbin/mksnap_ffs/mksnap_ffs.c
@@ -56,6 +56,7 @@ int
main(int argc, char **argv)
{
char *dir, *cp, path[PATH_MAX];
+ struct statfs stfsbuf;
struct ufs_args args;
struct group *grp;
struct stat stbuf;
@@ -85,6 +86,8 @@ main(int argc, char **argv)
} else {
strlcpy(path, args.fspec, cp - args.fspec + 1);
}
+ if(statfs(path, &stfsbuf) < 0)
+ err(1, "%s", path);
if (stat(path, &stbuf) < 0)
err(1, "%s", path);
if (!S_ISDIR(stbuf.st_mode))
@@ -100,7 +103,8 @@ main(int argc, char **argv)
*/
if ((grp = getgrnam("operator")) == NULL)
errx(1, "Cannot retrieve operator gid");
- if (mount("ffs", dir, MNT_UPDATE | MNT_SNAPSHOT, &args) < 0)
+ if (mount("ffs", dir, MNT_UPDATE | MNT_SNAPSHOT | stfsbuf.f_flags,
+ &args) < 0)
err(1, "Cannot create %s", args.fspec);
if ((fd = open(args.fspec, O_RDONLY)) < 0)
err(1, "Cannot open %s", args.fspec);
OpenPOWER on IntegriCloud