From: Csaba Henk Date: Sun, 3 Feb 2008 22:29:09 +0000 (+0000) Subject: lib/mount_bsd.c: prettify option specifications X-Git-Tag: fuse_2_8_start~2 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=00bddfe650912fdc52b470e0d64a597802f61ec6;p=qemu-gpiodev%2Flibfuse.git lib/mount_bsd.c: prettify option specifications --- diff --git a/ChangeLog b/ChangeLog index d813500..09f3a5d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,8 +6,9 @@ (in FreeBSD a mount failure is not critical per se, as the daemon still could be mounted externally, but waiting for such an event is more confusing than fruitful) - - ditch the kvm(8) stuff and fix unmounting in a simple and sensible - way + - ditch the kvm(8) stuff and simply use forced unmount which just + won't block + - prettify option specifications 2008-01-07 Csaba Henk diff --git a/lib/mount_bsd.c b/lib/mount_bsd.c index c186ffc..1de9cfa 100644 --- a/lib/mount_bsd.c +++ b/lib/mount_bsd.c @@ -42,84 +42,59 @@ struct mount_opts { char *kernel_opts; }; +#define FUSE_DUAL_OPT_KEY(templ, key) \ + FUSE_OPT_KEY(templ, key), FUSE_OPT_KEY("no" templ, key) + static const struct fuse_opt fuse_mount_opts[] = { { "allow_other", offsetof(struct mount_opts, allow_other), 1 }, { "allow_root", offsetof(struct mount_opts, allow_root), 1 }, - FUSE_OPT_KEY("allow_root", KEY_ALLOW_ROOT), - FUSE_OPT_KEY("-r", KEY_RO), - FUSE_OPT_KEY("-h", KEY_HELP), - FUSE_OPT_KEY("--help", KEY_HELP), - FUSE_OPT_KEY("-V", KEY_VERSION), - FUSE_OPT_KEY("--version", KEY_VERSION), + FUSE_OPT_KEY("allow_root", KEY_ALLOW_ROOT), + FUSE_OPT_KEY("-r", KEY_RO), + FUSE_OPT_KEY("-h", KEY_HELP), + FUSE_OPT_KEY("--help", KEY_HELP), + FUSE_OPT_KEY("-V", KEY_VERSION), + FUSE_OPT_KEY("--version", KEY_VERSION), /* standard FreeBSD mount options */ - FUSE_OPT_KEY("dev", KEY_KERN), - FUSE_OPT_KEY("async", KEY_KERN), - FUSE_OPT_KEY("atime", KEY_KERN), - FUSE_OPT_KEY("dev", KEY_KERN), - FUSE_OPT_KEY("exec", KEY_KERN), - FUSE_OPT_KEY("suid", KEY_KERN), - FUSE_OPT_KEY("symfollow", KEY_KERN), - FUSE_OPT_KEY("rdonly", KEY_KERN), - FUSE_OPT_KEY("sync", KEY_KERN), - FUSE_OPT_KEY("union", KEY_KERN), - FUSE_OPT_KEY("userquota", KEY_KERN), - FUSE_OPT_KEY("groupquota", KEY_KERN), - FUSE_OPT_KEY("clusterr", KEY_KERN), - FUSE_OPT_KEY("clusterw", KEY_KERN), - FUSE_OPT_KEY("suiddir", KEY_KERN), - FUSE_OPT_KEY("snapshot", KEY_KERN), - FUSE_OPT_KEY("multilabel", KEY_KERN), - FUSE_OPT_KEY("acls", KEY_KERN), - FUSE_OPT_KEY("force", KEY_KERN), - FUSE_OPT_KEY("update", KEY_KERN), - FUSE_OPT_KEY("ro", KEY_KERN), - FUSE_OPT_KEY("rw", KEY_KERN), - FUSE_OPT_KEY("auto", KEY_KERN), + FUSE_DUAL_OPT_KEY("dev", KEY_KERN), + FUSE_DUAL_OPT_KEY("async", KEY_KERN), + FUSE_DUAL_OPT_KEY("atime", KEY_KERN), + FUSE_DUAL_OPT_KEY("dev", KEY_KERN), + FUSE_DUAL_OPT_KEY("exec", KEY_KERN), + FUSE_DUAL_OPT_KEY("suid", KEY_KERN), + FUSE_DUAL_OPT_KEY("symfollow", KEY_KERN), + FUSE_DUAL_OPT_KEY("rdonly", KEY_KERN), + FUSE_DUAL_OPT_KEY("sync", KEY_KERN), + FUSE_DUAL_OPT_KEY("union", KEY_KERN), + FUSE_DUAL_OPT_KEY("userquota", KEY_KERN), + FUSE_DUAL_OPT_KEY("groupquota", KEY_KERN), + FUSE_DUAL_OPT_KEY("clusterr", KEY_KERN), + FUSE_DUAL_OPT_KEY("clusterw", KEY_KERN), + FUSE_DUAL_OPT_KEY("suiddir", KEY_KERN), + FUSE_DUAL_OPT_KEY("snapshot", KEY_KERN), + FUSE_DUAL_OPT_KEY("multilabel", KEY_KERN), + FUSE_DUAL_OPT_KEY("acls", KEY_KERN), + FUSE_DUAL_OPT_KEY("force", KEY_KERN), + FUSE_DUAL_OPT_KEY("update", KEY_KERN), + FUSE_DUAL_OPT_KEY("ro", KEY_KERN), + FUSE_DUAL_OPT_KEY("rw", KEY_KERN), + FUSE_DUAL_OPT_KEY("auto", KEY_KERN), /* options supported under both Linux and FBSD */ - FUSE_OPT_KEY("allow_other", KEY_KERN), - FUSE_OPT_KEY("default_permissions", KEY_KERN), - FUSE_OPT_KEY("subtype=", KEY_KERN), + FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN), + FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN), + FUSE_OPT_KEY("max_read=", KEY_KERN), + FUSE_OPT_KEY("subtype=", KEY_KERN), /* FBSD FUSE specific mount options */ - FUSE_OPT_KEY("private", KEY_KERN), - FUSE_OPT_KEY("neglect_shares", KEY_KERN), - FUSE_OPT_KEY("push_symlinks_in", KEY_KERN), + FUSE_DUAL_OPT_KEY("private", KEY_KERN), + FUSE_DUAL_OPT_KEY("neglect_shares", KEY_KERN), + FUSE_DUAL_OPT_KEY("push_symlinks_in", KEY_KERN), /* stock FBSD mountopt parsing routine lets anything be negated... */ - FUSE_OPT_KEY("nodev", KEY_KERN), - FUSE_OPT_KEY("noasync", KEY_KERN), - FUSE_OPT_KEY("noatime", KEY_KERN), - FUSE_OPT_KEY("nodev", KEY_KERN), - FUSE_OPT_KEY("noexec", KEY_KERN), - FUSE_OPT_KEY("nosuid", KEY_KERN), - FUSE_OPT_KEY("nosymfollow", KEY_KERN), - FUSE_OPT_KEY("nordonly", KEY_KERN), - FUSE_OPT_KEY("nosync", KEY_KERN), - FUSE_OPT_KEY("nounion", KEY_KERN), - FUSE_OPT_KEY("nouserquota", KEY_KERN), - FUSE_OPT_KEY("nogroupquota", KEY_KERN), - FUSE_OPT_KEY("noclusterr", KEY_KERN), - FUSE_OPT_KEY("noclusterw", KEY_KERN), - FUSE_OPT_KEY("nosuiddir", KEY_KERN), - FUSE_OPT_KEY("nosnapshot", KEY_KERN), - FUSE_OPT_KEY("nomultilabel", KEY_KERN), - FUSE_OPT_KEY("noacls", KEY_KERN), - FUSE_OPT_KEY("noforce", KEY_KERN), - FUSE_OPT_KEY("noupdate", KEY_KERN), - FUSE_OPT_KEY("noro", KEY_KERN), - FUSE_OPT_KEY("norw", KEY_KERN), - FUSE_OPT_KEY("noauto", KEY_KERN), - FUSE_OPT_KEY("noallow_other", KEY_KERN), - FUSE_OPT_KEY("nodefault_permissions", KEY_KERN), - FUSE_OPT_KEY("noprivate", KEY_KERN), - FUSE_OPT_KEY("noneglect_shares", KEY_KERN), - FUSE_OPT_KEY("nopush_symlinks_in", KEY_KERN), /* * Linux specific mount options, but let just the mount util * handle them */ - FUSE_OPT_KEY("fsname=", KEY_KERN), - FUSE_OPT_KEY("nonempty", KEY_KERN), - FUSE_OPT_KEY("large_read", KEY_KERN), - FUSE_OPT_KEY("max_read=", KEY_KERN), + FUSE_OPT_KEY("fsname=", KEY_KERN), + FUSE_OPT_KEY("nonempty", KEY_KERN), + FUSE_OPT_KEY("large_read", KEY_KERN), FUSE_OPT_END };