diff options
-rw-r--r-- | mm/mlock.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/mlock.c b/mm/mlock.c index c483c5c20b4b..b562b5523a65 100644 --- a/mm/mlock.c +++ b/mm/mlock.c | |||
@@ -284,7 +284,7 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone) | |||
284 | { | 284 | { |
285 | int i; | 285 | int i; |
286 | int nr = pagevec_count(pvec); | 286 | int nr = pagevec_count(pvec); |
287 | int delta_munlocked; | 287 | int delta_munlocked = -nr; |
288 | struct pagevec pvec_putback; | 288 | struct pagevec pvec_putback; |
289 | int pgrescued = 0; | 289 | int pgrescued = 0; |
290 | 290 | ||
@@ -304,6 +304,8 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone) | |||
304 | continue; | 304 | continue; |
305 | else | 305 | else |
306 | __munlock_isolation_failed(page); | 306 | __munlock_isolation_failed(page); |
307 | } else { | ||
308 | delta_munlocked++; | ||
307 | } | 309 | } |
308 | 310 | ||
309 | /* | 311 | /* |
@@ -315,7 +317,6 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone) | |||
315 | pagevec_add(&pvec_putback, pvec->pages[i]); | 317 | pagevec_add(&pvec_putback, pvec->pages[i]); |
316 | pvec->pages[i] = NULL; | 318 | pvec->pages[i] = NULL; |
317 | } | 319 | } |
318 | delta_munlocked = -nr + pagevec_count(&pvec_putback); | ||
319 | __mod_zone_page_state(zone, NR_MLOCK, delta_munlocked); | 320 | __mod_zone_page_state(zone, NR_MLOCK, delta_munlocked); |
320 | spin_unlock_irq(zone_lru_lock(zone)); | 321 | spin_unlock_irq(zone_lru_lock(zone)); |
321 | 322 | ||