diff options
-rw-r--r-- | source3/modules/onefs_open.c | 34 | ||||
-rw-r--r-- | source3/smbd/open.c | 33 |
2 files changed, 8 insertions, 59 deletions
diff --git a/source3/modules/onefs_open.c b/source3/modules/onefs_open.c index 21c5d51f90..4198e5fd56 100644 --- a/source3/modules/onefs_open.c +++ b/source3/modules/onefs_open.c @@ -2056,38 +2056,12 @@ NTSTATUS onefs_create_file(vfs_handle_struct *handle, case_state = set_posix_case_semantics(talloc_tos(), conn); } - /* 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, &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); + if (psbuf != NULL) { + sbuf = *psbuf; } else { - if (psbuf != NULL) { - sbuf = *psbuf; - } else { - if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) { - SET_STAT_INVALID(sbuf); - } + if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) { + SET_STAT_INVALID(sbuf); } - } TALLOC_FREE(case_state); diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 65a1ded1b8..773436fa8e 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -3438,37 +3438,12 @@ NTSTATUS create_file_default(connection_struct *conn, case_state = set_posix_case_semantics(talloc_tos(), conn); } - 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, &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); + if (psbuf != NULL) { + sbuf = *psbuf; } else { - if (psbuf != NULL) { - sbuf = *psbuf; - } else { - if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) { - SET_STAT_INVALID(sbuf); - } + if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) { + SET_STAT_INVALID(sbuf); } - } TALLOC_FREE(case_state); |