uid_t uid,
uint64_t mid,
uint16_t op_type,
+ const struct smb2_lease_key *lease_key,
uint32_t share_access,
uint32_t access_mask)
{
if (op_type == LEASE_OPLOCK) {
const struct GUID *client_guid = fsp_client_guid(fsp);
e.client_guid = *client_guid;
- e.lease_key = fsp->lease->lease.lease_key;
+ e.lease_key = *lease_key;
}
ok = share_mode_entry_put(&e, &e_buf);
struct share_mode_entry;
struct smb_filename;
struct files_struct;
+struct smb2_lease_key;
bool locking_init(void);
bool locking_init_readonly(void);
uid_t uid,
uint64_t mid,
uint16_t op_type,
+ const struct smb2_lease_key *lease_key,
uint32_t share_access,
uint32_t access_mask);
bool reset_share_mode_entry(
uint32_t existing_dos_attributes = 0;
struct share_mode_lock *lck = NULL;
uint32_t open_access_mask = access_mask;
+ const struct smb2_lease_key *lease_key = NULL;
NTSTATUS status;
SMB_STRUCT_STAT saved_stat = smb_fname->st;
struct timespec old_write_time;
return status;
}
+ if (fsp->oplock_type == LEASE_OPLOCK) {
+ lease_key = &lease->lease_key;
+ }
+
share_mode_flags_restrict(lck, access_mask, share_access, 0);
ok = set_share_mode(
get_current_uid(fsp->conn),
req ? req->mid : 0,
fsp->oplock_type,
+ lease_key,
share_access,
access_mask);
if (!ok) {
get_current_uid(conn),
req ? req->mid : 0,
NO_OPLOCK,
+ NULL,
share_access,
fsp->access_mask);
if (!ok) {