* When a delegation is recalled, the filehandle is stored in the "new"
  * filter.
  * Every 30 seconds we swap the filters and clear the "new" one,
- * unless both are empty of course.
+ * unless both are empty of course.  This results in delegations for a
+ * given filehandle being blocked for between 30 and 60 seconds.
  *
  * Each filter is 256 bits.  We hash the filehandle to 32bit and use the
  * low 3 bytes as hash-table indices.
                if (ktime_get_seconds() - bd->swap_time > 30) {
                        bd->entries -= bd->old_entries;
                        bd->old_entries = bd->entries;
+                       bd->new = 1-bd->new;
                        memset(bd->set[bd->new], 0,
                               sizeof(bd->set[0]));
-                       bd->new = 1-bd->new;
                        bd->swap_time = ktime_get_seconds();
                }
                spin_unlock(&blocked_delegations_lock);