diff options
author | Stefan Metzmacher <metze@samba.org> | 2019-08-19 12:33:28 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2019-09-09 14:23:40 +0000 |
commit | ad98eec6090430ba5296a5111dde2e53b9cd217a (patch) | |
tree | a1897bae51d3db59427401bd87b06d536a59e6b2 /source3/locking | |
parent | aba0ee46258f3dd910421facb742fce3318a6946 (diff) | |
download | samba-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.c | 8 |
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); |