dt-bindings: usb: usb-nop-xceiv: Convert to DT schema
[linux-2.6-microblaze.git] / mm / swap_state.c
index 751c1ef..3cdee7b 100644 (file)
@@ -68,32 +68,6 @@ static struct {
        unsigned long find_total;
 } swap_cache_info;
 
-unsigned long total_swapcache_pages(void)
-{
-       unsigned int i, j, nr;
-       unsigned long ret = 0;
-       struct address_space *spaces;
-       struct swap_info_struct *si;
-
-       for (i = 0; i < MAX_SWAPFILES; i++) {
-               swp_entry_t entry = swp_entry(i, 1);
-
-               /* Avoid get_swap_device() to warn for bad swap entry */
-               if (!swp_swap_info(entry))
-                       continue;
-               /* Prevent swapoff to free swapper_spaces */
-               si = get_swap_device(entry);
-               if (!si)
-                       continue;
-               nr = nr_swapper_spaces[i];
-               spaces = swapper_spaces[i];
-               for (j = 0; j < nr; j++)
-                       ret += spaces[j].nrpages;
-               put_swap_device(si);
-       }
-       return ret;
-}
-
 static atomic_t swapin_readahead_hits = ATOMIC_INIT(4);
 
 void show_swap_cache_info(void)
@@ -113,11 +87,9 @@ void *get_shadow_from_swap_cache(swp_entry_t entry)
        pgoff_t idx = swp_offset(entry);
        struct page *page;
 
-       page = find_get_entry(address_space, idx);
+       page = xa_load(&address_space->i_pages, idx);
        if (xa_is_value(page))
                return page;
-       if (page)
-               put_page(page);
        return NULL;
 }
 
@@ -163,6 +135,7 @@ int add_to_swap_cache(struct page *page, swp_entry_t entry,
                address_space->nrexceptional -= nr_shadows;
                address_space->nrpages += nr;
                __mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, nr);
+               __mod_lruvec_page_state(page, NR_SWAPCACHE, nr);
                ADD_CACHE_INFO(add_total, nr);
 unlock:
                xas_unlock_irq(&xas);
@@ -203,6 +176,7 @@ void __delete_from_swap_cache(struct page *page,
                address_space->nrexceptional += nr;
        address_space->nrpages -= nr;
        __mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr);
+       __mod_lruvec_page_state(page, NR_SWAPCACHE, -nr);
        ADD_CACHE_INFO(del_total, nr);
 }
 
@@ -429,7 +403,8 @@ struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index)
 {
        swp_entry_t swp;
        struct swap_info_struct *si;
-       struct page *page = find_get_entry(mapping, index);
+       struct page *page = pagecache_get_page(mapping, index,
+                                               FGP_ENTRY | FGP_HEAD, 0);
 
        if (!page)
                return page;
@@ -537,7 +512,6 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
                workingset_refault(page, shadow);
 
        /* Caller will initiate read into locked page */
-       SetPageWorkingset(page);
        lru_cache_add(page);
        *new_page_allocated = true;
        return page;
@@ -927,7 +901,7 @@ static struct attribute *swap_attrs[] = {
        NULL,
 };
 
-static struct attribute_group swap_attr_group = {
+static const struct attribute_group swap_attr_group = {
        .attrs = swap_attrs,
 };