diff options
author | Ralph Boehme <rb@sernet.de> | 2014-09-27 08:54:57 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-10-01 01:59:25 +0200 |
commit | 1ef2be68f802f44dd0e751b71a758f1a8f3ce865 (patch) | |
tree | 40a03b27d1a1ffff94651b984b5f2e8745df57de | |
parent | b2626c2d23cc9b9fdc0706f39d4c926aa12d679d (diff) | |
download | samba-1ef2be68f802f44dd0e751b71a758f1a8f3ce865.tar.gz |
vfs_fruit: deal with vfs_catia not being loaded
Signed-off-by: Ralph Boehme <rb@sernet.de>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Wed Oct 1 01:59:25 CEST 2014 on sn-devel-104
-rw-r--r-- | source3/modules/vfs_fruit.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index 242a6cbbc84..c1555f0d674 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -2242,7 +2242,13 @@ static ssize_t fruit_pread(vfs_handle_struct *handle, fsp->base_fsp->fsp_name->base_name, vfs_translate_to_unix, talloc_tos(), &name); - if (!NT_STATUS_IS_OK(status)) { + if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) { + name = talloc_strdup(talloc_tos(), tmp_base_name); + if (name == NULL) { + rc = -1; + goto exit; + } + } else if (!NT_STATUS_IS_OK(status)) { errno = map_errno_from_nt_status(status); rc = -1; goto exit; @@ -2332,7 +2338,13 @@ static ssize_t fruit_pwrite(vfs_handle_struct *handle, fsp->base_fsp->fsp_name->base_name, vfs_translate_to_unix, talloc_tos(), &name); - if (!NT_STATUS_IS_OK(status)) { + if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) { + name = talloc_strdup(talloc_tos(), tmp_base_name); + if (name == NULL) { + rc = -1; + goto exit; + } + } else if (!NT_STATUS_IS_OK(status)) { errno = map_errno_from_nt_status(status); rc = -1; goto exit; @@ -2613,7 +2625,13 @@ static int fruit_fstat(vfs_handle_struct *handle, files_struct *fsp, vfs_translate_to_unix, talloc_tos(), &name); - if (!NT_STATUS_IS_OK(status)) { + if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) { + name = talloc_strdup(talloc_tos(), tmp_base_name); + if (name == NULL) { + rc = -1; + goto exit; + } + } else if (!NT_STATUS_IS_OK(status)) { errno = map_errno_from_nt_status(status); rc = -1; goto exit; |