X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=mm%2Fswapfile.c;h=6da4b28b896b311f681069a3ef45ffec358d4b11;hb=84c2008af01132c4ca257ed9b595693c611df15d;hp=edafeace301f01879e04d31c9bf9e5c01a4484e9;hpb=8f0cb147b2fb12427bf6abef7fed2b604557a41e;p=powerpc.git diff --git a/mm/swapfile.c b/mm/swapfile.c index edafeace30..6da4b28b89 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -211,6 +211,26 @@ noswap: return (swp_entry_t) {0}; } +swp_entry_t get_swap_page_of_type(int type) +{ + struct swap_info_struct *si; + pgoff_t offset; + + spin_lock(&swap_lock); + si = swap_info + type; + if (si->flags & SWP_WRITEOK) { + nr_swap_pages--; + offset = scan_swap_map(si); + if (offset) { + spin_unlock(&swap_lock); + return swp_entry(type, offset); + } + nr_swap_pages++; + } + spin_unlock(&swap_lock); + return (swp_entry_t) {0}; +} + static struct swap_info_struct * swap_info_get(swp_entry_t entry) { struct swap_info_struct * p;