diff options
Diffstat (limited to 'mm/mlock.c')
| -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)  {  	int i;  	int nr = pagevec_count(pvec); -	int delta_munlocked; +	int delta_munlocked = -nr;  	struct pagevec pvec_putback;  	int pgrescued = 0; @@ -304,6 +304,8 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone)  				continue;  			else  				__munlock_isolation_failed(page); +		} else { +			delta_munlocked++;  		}  		/* @@ -315,7 +317,6 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone)  		pagevec_add(&pvec_putback, pvec->pages[i]);  		pvec->pages[i] = NULL;  	} -	delta_munlocked = -nr + pagevec_count(&pvec_putback);  	__mod_zone_page_state(zone, NR_MLOCK, delta_munlocked);  	spin_unlock_irq(zone_lru_lock(zone));  | 
