]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Simplify share_mode_stale_pid
authorVolker Lendecke <vl@samba.org>
Mon, 30 Jul 2018 11:03:17 +0000 (13:03 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 7 Sep 2018 15:26:18 +0000 (17:26 +0200)
This loop does not need to count valid share modes. A single valid one
is sufficient for keeping the delete token around

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/locking/locking.c

index b2681208cb878fcd599f7abeb06e9e7c14e9ad0b..e9bec6d763ec1af6dbf63c2c3004040887aa8325 100644 (file)
@@ -769,24 +769,20 @@ bool share_mode_stale_pid(struct share_mode_data *d, uint32_t idx)
        e->stale = true;
 
        if (d->num_delete_tokens != 0) {
-               uint32_t i, num_stale;
-
-               /*
-                * We cannot have any delete tokens
-                * if there are no valid share modes.
-                */
-
-               num_stale = 0;
+               uint32_t i;
 
                for (i=0; i<d->num_share_modes; i++) {
-                       if (d->share_modes[i].stale) {
-                               num_stale += 1;
+                       bool valid = !d->share_modes[i].stale;
+                       if (valid) {
+                               break;
                        }
                }
 
-               if (num_stale == d->num_share_modes) {
+               if (i == d->num_share_modes) {
                        /*
-                        * No non-stale share mode found
+                        * No valid (non-stale) share mode found, all
+                        * who might have set the delete token are
+                        * gone.
                         */
                        TALLOC_FREE(d->delete_tokens);
                        d->num_delete_tokens = 0;