</listitem>
</varlistentry>
+ <varlistentry>
+ <term>fruit:veto_localized = yes | no</term>
+ <listitem>
+
+ <para>When <parameter>fruit:veto_localized</parameter> is set to
+ <parameter>yes</parameter>, vfs_fruit will automatically veto any
+ attempts to access the <emphasis>.localized</emphasis> file or directory.
+ These can be created in order to let Mac OS provide localized
+ translations for folder names (typically for localized versions
+ of <emphasis>Desktop</emphasis>, <emphasis>Music</emphasis>, etc.).
+ When very large directories are listed a Mac client might do queries for
+ the presence of the .localized file for each and every entry in that
+ directory listing. In combination with clustered filesystems this might
+ have a significant impact on the overal directory listing performance.
+ When potential folder name translation is not desired this option allows
+ to avoid the additional network overhead by not letting the server go
+ down to the filesystem layer for any queries.</para>
+ <para>The default is <emphasis>no</emphasis>.</para>
+
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect1>
bool wipe_intentionally_left_blank_rfork;
bool delete_empty_adfiles;
bool validate_afpinfo;
+ bool veto_localized;
/*
* Additional options, all enabled by default,
SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
"validate_afpinfo", true);
+ config->veto_localized = lp_parm_bool(
+ SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
+ "veto_localized", false);
+
SMB_VFS_HANDLE_SET_DATA(handle, config,
NULL, struct fruit_config_data,
return -1);
TALLOC_FREE(list);
}
+ if (config->veto_localized) {
+ list = lp_veto_files(talloc_tos(), lp_sub, SNUM(handle->conn));
+
+ if (list) {
+ newlist = talloc_asprintf(
+ list,
+ "%s/.localized/",
+ list);
+ lp_do_parameter(SNUM(handle->conn),
+ "veto files",
+ newlist);
+ } else {
+ lp_do_parameter(SNUM(handle->conn),
+ "veto files",
+ "/.localized/");
+ }
+
+ TALLOC_FREE(list);
+ }
+
if (config->encoding == FRUIT_ENC_NATIVE) {
lp_do_parameter(SNUM(handle->conn),
"catia:mappings",