From: Volker Lendecke Date: Mon, 24 Sep 2018 13:46:27 +0000 (+0200) Subject: smbd: Slightly optimize delay_rename_for_lease_break X-Git-Tag: tdb-1.3.17~1209 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05954fce4265bab68d78bb335e5b8d63259ce9f4;p=thirdparty%2Fsamba.git smbd: Slightly optimize delay_rename_for_lease_break Do the checks with increasing cost, possibly avoid more expensive ones Signed-off-by: Volker Lendecke Reviewed-by: Andreas Schneider --- diff --git a/source3/smbd/smb2_setinfo.c b/source3/smbd/smb2_setinfo.c index 9b4620a5276..11b126aa794 100644 --- a/source3/smbd/smb2_setinfo.c +++ b/source3/smbd/smb2_setinfo.c @@ -203,13 +203,19 @@ static struct tevent_req *delay_rename_for_lease_break(struct tevent_req *req, for (i=0; inum_share_modes; i++) { struct share_mode_entry *e = &d->share_modes[i]; struct share_mode_lease *l = NULL; - uint32_t e_lease_type = get_lease_type(d, e); + uint32_t e_lease_type; uint32_t break_to; if (e->op_type != LEASE_OPLOCK) { continue; } + e_lease_type = get_lease_type(d, e); + + if (!(e_lease_type & SMB2_LEASE_HANDLE)) { + continue; + } + l = &d->leases[e->lease_idx]; if (smb2_lease_equal(fsp_client_guid(fsp), @@ -223,10 +229,6 @@ static struct tevent_req *delay_rename_for_lease_break(struct tevent_req *req, continue; } - if (!(e_lease_type & SMB2_LEASE_HANDLE)) { - continue; - } - delay = true; break_to = (e_lease_type & ~SMB2_LEASE_HANDLE);