smbd: Slightly optimize delay_rename_for_lease_break
authorVolker Lendecke <vl@samba.org>
Mon, 24 Sep 2018 13:46:27 +0000 (15:46 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Thu, 25 Oct 2018 15:58:24 +0000 (17:58 +0200)
Do the checks with increasing cost, possibly avoid more expensive ones

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/smbd/smb2_setinfo.c

index 9b4620a52761cea04c064e91bc9362387fd71127..11b126aa7947ee5f21a0f4727fa0ae6949f84b8a 100644 (file)
@@ -203,13 +203,19 @@ static struct tevent_req *delay_rename_for_lease_break(struct tevent_req *req,
        for (i=0; i<d->num_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);