From: Volker Lendecke Date: Sun, 30 Jun 2019 07:15:48 +0000 (+0200) Subject: smbd: Set SHARE_MODE_HAS_READ_LEASE when granting a read lease X-Git-Tag: samba-4.11.0rc1~100 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ffd098d8bbdcbcc6109aaa939c67bc6e9b306e42;p=thirdparty%2Fsamba.git smbd: Set SHARE_MODE_HAS_READ_LEASE when granting a read lease Lazy update of the flag: Whenever we add a read lease, we have to set the flag. Nobody except contend_level2_oplocks_begin will remove that flag again, as this would mean a full lease traverse when removing one. And contend_level2_oplocks_begin traverses the leases anyway Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme --- diff --git a/source3/smbd/open.c b/source3/smbd/open.c index b86559ec417..a46e42482f7 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -2355,6 +2355,10 @@ static NTSTATUS grant_fsp_oplock_type(struct smb_request *req, return NT_STATUS_NO_MEMORY; } + if (granted & SMB2_LEASE_READ) { + lck->data->flags |= SHARE_MODE_HAS_READ_LEASE; + } + ok = update_num_read_oplocks(fsp, lck); if (!ok) { del_share_mode(lck, fsp);