enum brl_flavour lock_flav,
bool blocking_lock,
NTSTATUS *perr,
+ struct server_id *pblocker_pid,
uint64_t *psmblctx)
{
struct byte_range_lock *br_lck = NULL;
if (psmblctx != NULL) {
*psmblctx = blocker_smblctx;
}
+ if (pblocker_pid != NULL) {
+ *pblocker_pid = blocker_pid;
+ }
DEBUG(10, ("do_lock: returning status=%s\n", nt_errstr(*perr)));
off = access_to_netatalk_brl(fork_type, FILE_READ_DATA);
br_lck = do_lock(
- handle->conn->sconn->msg_ctx, fsp,
- fsp->op->global->open_persistent_id, 1, off,
- READ_LOCK, POSIX_LOCK, false,
- &status, NULL);
+ handle->conn->sconn->msg_ctx,
+ fsp,
+ fsp->op->global->open_persistent_id,
+ 1,
+ off,
+ READ_LOCK,
+ POSIX_LOCK,
+ false, /* blocking_lock */
+ &status,
+ NULL,
+ NULL);
TALLOC_FREE(br_lck);
off = denymode_to_netatalk_brl(fork_type, DENY_READ);
br_lck = do_lock(
- handle->conn->sconn->msg_ctx, fsp,
- fsp->op->global->open_persistent_id, 1, off,
- READ_LOCK, POSIX_LOCK, false,
- &status, NULL);
+ handle->conn->sconn->msg_ctx,
+ fsp,
+ fsp->op->global->open_persistent_id,
+ 1,
+ off,
+ READ_LOCK,
+ POSIX_LOCK,
+ false, /* blocking_lock */
+ &status,
+ NULL,
+ NULL);
TALLOC_FREE(br_lck);
off = access_to_netatalk_brl(fork_type, FILE_WRITE_DATA);
br_lck = do_lock(
- handle->conn->sconn->msg_ctx, fsp,
- fsp->op->global->open_persistent_id, 1, off,
- READ_LOCK, POSIX_LOCK, false,
- &status, NULL);
+ handle->conn->sconn->msg_ctx,
+ fsp,
+ fsp->op->global->open_persistent_id,
+ 1,
+ off,
+ READ_LOCK,
+ POSIX_LOCK,
+ false,
+ &status,
+ NULL,
+ NULL);
TALLOC_FREE(br_lck);
off = denymode_to_netatalk_brl(fork_type, DENY_WRITE);
br_lck = do_lock(
- handle->conn->sconn->msg_ctx, fsp,
- fsp->op->global->open_persistent_id, 1, off,
- READ_LOCK, POSIX_LOCK, false,
- &status, NULL);
+ handle->conn->sconn->msg_ctx,
+ fsp,
+ fsp->op->global->open_persistent_id,
+ 1,
+ off,
+ READ_LOCK,
+ POSIX_LOCK,
+ false,
+ &status,
+ NULL,
+ NULL);
TALLOC_FREE(br_lck);
WINDOWS_LOCK,
False, /* Non-blocking lock. */
&status,
+ NULL,
NULL);
TALLOC_FREE(br_lck);
WINDOWS_LOCK,
False, /* Non-blocking lock. */
&status,
+ NULL,
NULL);
TALLOC_FREE(br_lck);
bool blocking_lock = (timeout != 0);
bool defer_lock = false;
struct byte_range_lock *br_lck;
+ struct server_id blocker_pid;
uint64_t block_smblctx;
br_lck = do_lock(req->sconn->msg_ctx,
WINDOWS_LOCK,
blocking_lock,
&status,
+ &blocker_pid,
&block_smblctx);
if (br_lck && blocking_lock && ERROR_WAS_LOCK_DENIED(status)) {