Thank you!
BTW, it was lack of description for zfs_space that prompted my post here :D
@dlavigne correct me if I'm wrong.
vfs_dfs_space
I believe zfs_space is a vfs module that a freenas dev wrote to get the free space to show up right in CIFS clients. See commit here:
https://github.com/freenas/freenas/commit/f27b6d416017cc0131ea348b6ced1db4e3e25331
When you're asking for documenation, can you get some for 'winacl' as well. :D
vfs_dfs_samba4
This is not well-documented (there is no manpage for it in the samba source code). Another way of viewing it is that the source code
is the manpage (how's that for a streamlined process?). It is related to setting up DFS, and may be enabled silently by default when samba is configured as an AD-DC. For more information see here:
https://wiki.samba.org/index.php/DFS
vfs_fake_perms
VFS module was created to allow Roaming Profile files and directories to be set (on the Samba server under UNIX) as read only. This module will, if installed on the Profiles share, report to the client that the Profile files and directories are writeable. This satisfies the client even though the files will never be overwritten as the client logs out or shuts down
.
vfs_skel_opaque and vfs_skel_transparent
The skeleton VFS modules simply pass all requests back to the disk functions (i.e. it operates as a passthorugh filter). They are used for VFS development. and should probably not be exposed in the FreeNAS GUI.
Edited to add the following from the samba source (source3\param\loadparm.c):
Code:
static void init_locals(void)
{
/*
* We run this check once the [globals] is parsed, to force
* the VFS objects and other per-share settings we need for
* the standard way a AD DC is operated. We may change these
* as our code evolves, which is why we force these settings.
*
* We can't do this at the end of lp_load_ex(), as by that
* point the services have been loaded and they will already
* have "" as their vfs objects.
*/
if (lp_server_role() == ROLE_ACTIVE_DIRECTORY_DC) {
const char **vfs_objects = lp_vfs_objects(-1);
if (!vfs_objects || !vfs_objects[0]) {
if (lp_parm_const_string(-1, "xattr_tdb", "file", NULL)) {
lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr xattr_tdb");
} else if (lp_parm_const_string(-1, "posix", "eadb", NULL)) {
lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr posix_eadb");
} else {
lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr");
}
}
lp_do_parameter(-1, "map hidden", "no");
lp_do_parameter(-1, "map system", "no");
lp_do_parameter(-1, "map readonly", "no");
lp_do_parameter(-1, "map archive", "no");
lp_do_parameter(-1, "store dos attributes", "yes");
}
}
So dfs_samba4 is hardcoded into the samba code for running an AD-DC. It appears that acl_xattr is also hard-coded, which is unfortunate because acl_xattr and zfsacl don't exactly play well together. This probably causes problems for the imaginary people using FreeNAS as an AD-DC. :D
Anyway, it seems that there's some fat to be trimmed in the list of available VFS modules. Created bug report here:
https://bugs.freenas.org/issues/12291