|
@@ -393,14 +393,15 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl,
|
|
|
unsigned long nr_to_scan = min(batch_size, total_scan);
|
|
|
|
|
|
shrinkctl->nr_to_scan = nr_to_scan;
|
|
|
+ shrinkctl->nr_scanned = nr_to_scan;
|
|
|
ret = shrinker->scan_objects(shrinker, shrinkctl);
|
|
|
if (ret == SHRINK_STOP)
|
|
|
break;
|
|
|
freed += ret;
|
|
|
|
|
|
- count_vm_events(SLABS_SCANNED, nr_to_scan);
|
|
|
- total_scan -= nr_to_scan;
|
|
|
- scanned += nr_to_scan;
|
|
|
+ count_vm_events(SLABS_SCANNED, shrinkctl->nr_scanned);
|
|
|
+ total_scan -= shrinkctl->nr_scanned;
|
|
|
+ scanned += shrinkctl->nr_scanned;
|
|
|
|
|
|
cond_resched();
|
|
|
}
|