From: Stefan Metzmacher Date: Mon, 19 Aug 2019 10:33:28 +0000 (+0200) Subject: s3:brlock: always return LOCK_NOT_GRANTED instead of FILE_LOCK_CONFLICT X-Git-Tag: talloc-2.3.1~967 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad98eec6090430ba5296a5111dde2e53b9cd217a;p=thirdparty%2Fsamba.git 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 Signed-off-by: Volker Lendecke --- 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);