summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/locking/posix.c16
-rw-r--r--source3/modules/vfs_default.c5
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)