Fix mount helper

Several issues related to strange mount/umount behavior were reported
and this commit should address most of them.  The original idea was
to put in place a zfs mount helper (mount.zfs).  This helper is used
to enforce 'legacy' mount behavior, and perform any extra mount argument
processing (selinux, zfsutil, etc).  This helper wasn't ready for the
0.6.0-rc1 release but with this change it's functional but needs to
extensively tested.

This change addresses the following open issues.
Closes #101
Closes #107
Closes #113
Closes #115
Closes #119
This commit is contained in:
Brian Behlendorf
2011-03-04 15:14:46 -08:00
parent adf2e8778e
commit d53368f675
11 changed files with 1231 additions and 455 deletions
-9
View File
@@ -72,9 +72,6 @@
#include <sys/mntent.h>
#include <sys/mount.h>
#include <sys/stat.h>
#ifdef HAVE_LIBSELINUX
#include <selinux/selinux.h>
#endif /* HAVE_LIBSELINUX */
#include <libzfs.h>
@@ -346,12 +343,6 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags)
*/
strlcat(mntopts, "," MNTOPT_ZFSUTIL, sizeof (mntopts));
#ifdef HAVE_LIBSELINUX
if (is_selinux_enabled())
(void) strlcat(mntopts, ",context=\"system_u:"
"object_r:file_t:s0\"", sizeof (mntopts));
#endif /* HAVE_LIBSELINUX */
if (!zfs_is_mountable(zhp, mountpoint, sizeof (mountpoint), NULL))
return (0);