OSDN Git Service

xen/balloon: mark inflated pages PG_offline
[uclinux-h8/linux.git] / drivers / xen / balloon.c
index d107447..39b229f 100644 (file)
@@ -380,6 +380,7 @@ static void xen_online_page(struct page *page, unsigned int order)
        for (i = 0; i < size; i++) {
                p = pfn_to_page(start_pfn + i);
                __online_page_set_limits(p);
+               __SetPageOffline(p);
                __balloon_append(p);
        }
        mutex_unlock(&balloon_mutex);
@@ -446,6 +447,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
                xenmem_reservation_va_mapping_update(1, &page, &frame_list[i]);
 
                /* Relinquish the page back to the allocator. */
+               __ClearPageOffline(page);
                free_reserved_page(page);
        }
 
@@ -472,6 +474,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
                        state = BP_EAGAIN;
                        break;
                }
+               __SetPageOffline(page);
                adjust_managed_page_count(page, -1);
                xenmem_reservation_scrub_page(page);
                list_add(&page->lru, &pages);