[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Fix blktap "bad page state" bug.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 3e5a203c548982a7fdca77aa78ce837a8329f5c4
# Parent  369bdfa1e04aa5097440eb0cd548d4e2033365ae
Fix blktap "bad page state" bug.

Signed-off-by: Andrew Warfield <andrew.warfield@xxxxxxxxxxxx>
Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>

diff -r 369bdfa1e04a -r 3e5a203c5489 linux-2.6-xen-sparse/mm/memory.c
--- a/linux-2.6-xen-sparse/mm/memory.c  Sun Apr 30 09:32:21 2006 +0100
+++ b/linux-2.6-xen-sparse/mm/memory.c  Sun Apr 30 09:39:04 2006 +0100
@@ -968,6 +968,7 @@ int get_user_pages(struct task_struct *t
 {
        int i;
        unsigned int vm_flags;
+       int xenpage = 0;
 
        /* 
         * Require read or write permissions.
@@ -1025,10 +1026,14 @@ int get_user_pages(struct task_struct *t
                if (vma && (vma->vm_flags & VM_FOREIGN)) {
                        struct page **map = vma->vm_private_data;
                        int offset = (start - vma->vm_start) >> PAGE_SHIFT;
-
+                       xenpage =1;
                        if (map[offset] != NULL) {
-                               if (pages)
-                                       pages[i] = map[offset];
+                               if (pages) {
+                                       struct page *page = map[offset];
+                                       
+                                       pages[i] = page;
+                                       get_page(page);
+                               }
                                if (vmas)
                                        vmas[i] = vma;
                                i++;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.