summaryrefslogtreecommitdiff
path: root/source3/locking
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2019-08-19 12:33:28 +0200
committerStefan Metzmacher <metze@samba.org>2019-09-09 14:23:40 +0000
commitad98eec6090430ba5296a5111dde2e53b9cd217a (patch)
treea1897bae51d3db59427401bd87b06d536a59e6b2 /source3/locking
parentaba0ee46258f3dd910421facb742fce3318a6946 (diff)
downloadsamba-ad98eec6090430ba5296a5111dde2e53b9cd217a.tar.gz
s3:brlock: always return LOCK_NOT_GRANTED instead of FILE_LOCK_CONFLICT
Returning NT_STATUS_FILE_LOCK_CONFLICT is a SMB1 only detail for delayed brlock requests, which is handled in smbd_smb1_do_locks*(). The brlock layer should be consistent even for posix locks. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14113 Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Volker Lendecke <vl@samba.org>
Diffstat (limited to 'source3/locking')
-rw-r--r--source3/locking/brlock.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c
index 628c2574357..0a85bd0b057 100644
--- a/source3/locking/brlock.c
+++ b/source3/locking/brlock.c
@@ -462,7 +462,7 @@ NTSTATUS brl_lock_windows_default(struct byte_range_lock *br_lck,
plock->context.smblctx = 0xFFFFFFFFFFFFFFFFLL;
if (errno_ret == EACCES || errno_ret == EAGAIN) {
- status = NT_STATUS_FILE_LOCK_CONFLICT;
+ status = NT_STATUS_LOCK_NOT_GRANTED;
goto fail;
} else {
status = map_nt_error_from_unix(errno);
@@ -829,7 +829,7 @@ static NTSTATUS brl_lock_posix(struct byte_range_lock *br_lck,
TALLOC_FREE(tp);
/* Remember who blocked us. */
plock->context.smblctx = curr_lock->context.smblctx;
- return NT_STATUS_FILE_LOCK_CONFLICT;
+ return NT_STATUS_LOCK_NOT_GRANTED;
}
/* Just copy the Windows lock into the new array. */
memcpy(&tp[count], curr_lock, sizeof(struct lock_struct));
@@ -849,7 +849,7 @@ static NTSTATUS brl_lock_posix(struct byte_range_lock *br_lck,
TALLOC_FREE(tp);
/* Remember who blocked us. */
plock->context.smblctx = curr_lock->context.smblctx;
- return NT_STATUS_FILE_LOCK_CONFLICT;
+ return NT_STATUS_LOCK_NOT_GRANTED;
}
/* Work out overlaps. */
@@ -912,7 +912,7 @@ static NTSTATUS brl_lock_posix(struct byte_range_lock *br_lck,
if (errno_ret == EACCES || errno_ret == EAGAIN) {
TALLOC_FREE(tp);
- status = NT_STATUS_FILE_LOCK_CONFLICT;
+ status = NT_STATUS_LOCK_NOT_GRANTED;
goto fail;
} else {
TALLOC_FREE(tp);