[PATCH] Patch for bug 11721
Ralph Boehme
slow at samba.org
Wed May 4 14:27:29 UTC 2016
Hi!
Attached is a patch for bug 11721, essentially a workaround for Apple
radar 1029666009.
It adds an option to disable POSIX rename behaviour to vfs_fruit. The
bugreport has more details.
Please review&push if ok. Thanks!
Cheerio!
-slow
-------------- next part --------------
From ab59ed78886de00131bde8a1165a14fdec852f27 Mon Sep 17 00:00:00 2001
From: Ralph Boehme <slow at samba.org>
Date: Mon, 11 Apr 2016 12:17:22 +0200
Subject: [PATCH] vfs_fruit: add an option that allows disabling POSIX rename
behaviour
https://bugzilla.samba.org/show_bug.cgi?id=11721
Signed-off-by: Ralph Boehme <slow at samba.org>
---
docs-xml/manpages/vfs_fruit.8.xml | 11 +++++++++++
source3/modules/vfs_fruit.c | 6 +++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/docs-xml/manpages/vfs_fruit.8.xml b/docs-xml/manpages/vfs_fruit.8.xml
index 36d137e..2535f9e 100644
--- a/docs-xml/manpages/vfs_fruit.8.xml
+++ b/docs-xml/manpages/vfs_fruit.8.xml
@@ -234,6 +234,17 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>fruit:posix_rename = yes | no</term>
+ <listitem>
+ <para>Whether to enable POSIX directory rename behaviour
+ for OS X clients. Without this, directories can't be
+ renamed if any client has any file inside it
+ (recursive!) open.</para>
+ <para>The default is <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 761741a3..cab9e6a 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -132,6 +132,7 @@ struct fruit_config_data {
bool unix_info_enabled;
bool copyfile_enabled;
bool veto_appledouble;
+ bool posix_rename;
/*
* Additional options, all enabled by default,
@@ -1355,6 +1356,9 @@ static int init_fruit_config(vfs_handle_struct *handle)
config->use_copyfile = lp_parm_bool(-1, FRUIT_PARAM_TYPE_NAME,
"copyfile", false);
+ config->posix_rename = lp_parm_bool(
+ SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME, "posix_rename", true);
+
config->readdir_attr_rsize = lp_parm_bool(
SNUM(handle->conn), "readdir_attr", "aapl_rsize", true);
@@ -3451,7 +3455,7 @@ static NTSTATUS fruit_create_file(vfs_handle_struct *handle,
fsp->aapl_copyfile_supported = true;
}
- if (fsp->is_directory) {
+ if (config->posix_rename && fsp->is_directory) {
/*
* Enable POSIX directory rename behaviour
*/
--
2.5.0
More information about the samba-technical
mailing list