summaryrefslogtreecommitdiff
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 16:04:29 +0000
commit8b3a50609f430ec08add2bbac77b106a585d97c6 (patch)
tree71b97d39ce8ecee2ecfe3dca30e6b1a126a9d1d8
parentb56bb2ac59dd190cdf3c726a7becf2ae9d296657 (diff)
downloadsamba-8b3a50609f430ec08add2bbac77b106a585d97c6.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> (cherry picked from commit ad98eec6090430ba5296a5111dde2e53b9cd217a)
-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);