summaryrefslogtreecommitdiff
path: root/source3/modules/onefs_open.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/modules/onefs_open.c')
-rw-r--r--source3/modules/onefs_open.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source3/modules/onefs_open.c b/source3/modules/onefs_open.c
index dc8bf10a94..7d4379f1fc 100644
--- a/source3/modules/onefs_open.c
+++ b/source3/modules/onefs_open.c
@@ -2058,16 +2058,27 @@ NTSTATUS onefs_create_file(vfs_handle_struct *handle,
/* Convert dos path to unix path if it hasn't already been done. */
if (create_file_flags & CFF_DOS_PATH) {
+ struct smb_filename *smb_fname = NULL;
char *converted_fname;
SET_STAT_INVALID(sbuf);
- status = unix_convert(talloc_tos(), conn, fname, False,
- &converted_fname, NULL, &sbuf);
+ status = unix_convert(talloc_tos(), conn, fname, &smb_fname,
+ 0);
if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
+
+ status = get_full_smb_filename(talloc_tos(), &smb_fname,
+ &converted_fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ TALLOC_FREE(smb_fname);
+ goto fail;
+ }
+
+ sbuf = smb_fname->st;
fname = converted_fname;
+ TALLOC_FREE(smb_fname);
} else {
if (psbuf != NULL) {
sbuf = *psbuf;