Allow fake mounts to succeed on non-legacy filesystems.
authorWill Rouesnel <w.rouesnel@gmail.com>
Thu, 27 Dec 2012 14:44:16 +0000 (01:44 +1100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 7 Jan 2013 19:30:27 +0000 (11:30 -0800)
mountall in Debian depends on being able to pass the -f parameter to
mount, which specifies a fake mount and just updates the mtab. Currently
mount.zfs will fail such a request if it is not passed with -o zfsutil.

This patch allows a fake mount on a non-legacy filesystem to succeed in
the same manner as a -o remount does, thus enabling mountall to work
correctly.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1167

cmd/mount_zfs/mount_zfs.c

index 6dd831d..9a82a2b 100644 (file)
@@ -474,7 +474,8 @@ main(int argc, char **argv)
                return (MOUNT_USAGE);
        }
 
-       if (!zfsutil && strcmp(legacy, ZFS_MOUNTPOINT_LEGACY) && !remount) {
+       if (!zfsutil && !(remount || fake) &&
+           strcmp(legacy, ZFS_MOUNTPOINT_LEGACY)) {
                (void) fprintf(stderr, gettext(
                    "filesystem '%s' cannot be mounted using 'mount'.\n"
                    "Use 'zfs set mountpoint=%s' or 'zfs mount %s'.\n"