User: | Jiri Slaby |
Error type: | Leaving function in locked state |
Error type description: | Some lock is not unlocked on all paths of a function, so it is leaked |
File location: | mm/vmscan.c |
Line in file: | 2462 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-29 20:11:37 UTC |
2432 2433 zone = NULL; 2434 2435 for (i = 0; i < pagevec_count(&pvec); i++) { 2436 struct page *page = pvec.pages[i]; 2437 pgoff_t page_index = page->index; 2438 struct zone *pagezone = page_zone(page); 2439 2440 pg_scanned++; 2441 if (page_index > next) 2442 next = page_index; 2443 next++; 2444 2445 if (pagezone != zone) { 2446 if (zone) 2447 spin_unlock_irq(&zone->lru_lock); 2448 zone = pagezone; 2449 spin_lock_irq(&zone->lru_lock); 2450 } 2451 2452 if (PageLRU(page) && PageUnevictable(page)) 2453 check_move_unevictable_page(page, zone); 2454 } 2455 if (zone) 2456 spin_unlock_irq(&zone->lru_lock); 2457 pagevec_release(&pvec); 2458 2459 count_vm_events(UNEVICTABLE_PGSCANNED, pg_scanned); 2460 } 2461 2462} 2463 2464/** 2465 * scan_zone_unevictable_pages - check unevictable list for evictable pages 2466 * @zone - zone of which to scan the unevictable list 2467 * 2468 * Scan @zone's unevictable LRU lists to check for pages that have become 2469 * evictable. Move those that have to @zone's inactive list where they 2470 * become candidates for reclaim, unless shrink_inactive_zone() decides 2471 * to reactivate them. Pages that are still unevictable are rotated 2472 * back onto @zone's unevictable list.