swapfile.c (c3cc99ff5d24e2eeaf7ec2032e720681916990e3) | swapfile.c (19fd6231279be3c3bdd02ed99f9b0eb195978064) |
---|---|
1/* 2 * linux/mm/swapfile.c 3 * 4 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds 5 * Swap reorganised 29.12.95, Stephen Tweedie 6 */ 7 8#include <linux/mm.h> --- 355 unchanged lines hidden (view full) --- 364 p = swap_info_get(entry); 365 if (!p) 366 return 0; 367 368 /* Is the only swap cache user the cache itself? */ 369 retval = 0; 370 if (p->swap_map[swp_offset(entry)] == 1) { 371 /* Recheck the page count with the swapcache lock held.. */ | 1/* 2 * linux/mm/swapfile.c 3 * 4 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds 5 * Swap reorganised 29.12.95, Stephen Tweedie 6 */ 7 8#include <linux/mm.h> --- 355 unchanged lines hidden (view full) --- 364 p = swap_info_get(entry); 365 if (!p) 366 return 0; 367 368 /* Is the only swap cache user the cache itself? */ 369 retval = 0; 370 if (p->swap_map[swp_offset(entry)] == 1) { 371 /* Recheck the page count with the swapcache lock held.. */ |
372 write_lock_irq(&swapper_space.tree_lock); | 372 spin_lock_irq(&swapper_space.tree_lock); |
373 if ((page_count(page) == 2) && !PageWriteback(page)) { 374 __delete_from_swap_cache(page); 375 SetPageDirty(page); 376 retval = 1; 377 } | 373 if ((page_count(page) == 2) && !PageWriteback(page)) { 374 __delete_from_swap_cache(page); 375 SetPageDirty(page); 376 retval = 1; 377 } |
378 write_unlock_irq(&swapper_space.tree_lock); | 378 spin_unlock_irq(&swapper_space.tree_lock); |
379 } 380 spin_unlock(&swap_lock); 381 382 if (retval) { 383 swap_free(entry); 384 page_cache_release(page); 385 } 386 --- 1465 unchanged lines hidden --- | 379 } 380 spin_unlock(&swap_lock); 381 382 if (retval) { 383 swap_free(entry); 384 page_cache_release(page); 385 } 386 --- 1465 unchanged lines hidden --- |