diff options
-rw-r--r-- | source3/locking/posix.c | 16 | ||||
-rw-r--r-- | source3/modules/vfs_default.c | 5 |
2 files changed, 6 insertions, 15 deletions
diff --git a/source3/locking/posix.c b/source3/locking/posix.c index 844a86e863..aedc12dede 100644 --- a/source3/locking/posix.c +++ b/source3/locking/posix.c @@ -607,7 +607,7 @@ static size_t get_posix_pending_close_entries(TALLOC_CTX *mem_ctx, to delete all locks on this fsp before this function is called. ****************************************************************************/ -NTSTATUS fd_close_posix(struct files_struct *fsp) +int fd_close_posix(struct files_struct *fsp) { int saved_errno = 0; int ret; @@ -620,11 +620,7 @@ NTSTATUS fd_close_posix(struct files_struct *fsp) * which will lose all locks on all fd's open on this dev/inode, * just close. */ - ret = close(fsp->fh->fd); - if (ret == -1) { - return map_nt_error_from_unix(errno); - } - return NT_STATUS_OK; + return close(fsp->fh->fd); } if (get_windows_lock_ref_count(fsp)) { @@ -635,7 +631,7 @@ NTSTATUS fd_close_posix(struct files_struct *fsp) */ add_fd_to_close_entry(fsp); - return NT_STATUS_OK; + return 0; } /* @@ -678,11 +674,7 @@ NTSTATUS fd_close_posix(struct files_struct *fsp) ret = -1; } - if (ret == -1) { - return map_nt_error_from_unix(errno); - } - - return NT_STATUS_OK; + return ret; } /**************************************************************************** diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 9887b309f9..a03f4dcef9 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -210,13 +210,12 @@ static int vfswrap_open(vfs_handle_struct *handle, const char *fname, static int vfswrap_close(vfs_handle_struct *handle, files_struct *fsp, int fd) { - NTSTATUS result; + int result; START_PROFILE(syscall_close); result = fd_close_posix(fsp); END_PROFILE(syscall_close); - - return NT_STATUS_IS_OK(result) ? 0 : -1; + return result; } static ssize_t vfswrap_read(vfs_handle_struct *handle, files_struct *fsp, void *data, size_t n) |