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

[Xen-changelog] [linux-2.6.18-xen] blktap2: eliminate bogus clearing of PG_reserved



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1281451616 -3600
# Node ID 566d68f989eec2fa570fd0273a07e79d7702d773
# Parent  042c8cd710810204049ea8194f1bb95e74949a1d
blktap2: eliminate bogus clearing of PG_reserved

While making sure PG_reserved is set for pages allocated from the
balloon driver (and to be used for I/O) is a necessary thing to do
(as 2.6.18's as well as pv-ops' balloon drivers don't guarantee this
for the pages returned from alloc_empty_pages_and_page_vec()),
clearing this flag again when a page is no longer in use for I/O is
bogus at best (after all, the page at that point is not associated
with any MFN anymore), and causes problems when the balloon driver
properly marks all such pages as reserved and checks, upon their
return, that they are still marked this way.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
 drivers/xen/blktap2/device.c |    1 -
 drivers/xen/blktap2/ring.c   |    9 +++------
 2 files changed, 3 insertions(+), 7 deletions(-)

diff -r 042c8cd71081 -r 566d68f989ee drivers/xen/blktap2/device.c
--- a/drivers/xen/blktap2/device.c      Mon Aug 02 11:02:18 2010 +0100
+++ b/drivers/xen/blktap2/device.c      Tue Aug 10 15:46:56 2010 +0100
@@ -281,7 +281,6 @@ blktap_device_fast_flush(struct blktap *
 
                page = map[offset];
                if (page) {
-                       ClearPageReserved(map[offset]);
                        if (PageBlkback(page)) {
                                ClearPageBlkback(page);
                                set_page_private(page, 0);
diff -r 042c8cd71081 -r 566d68f989ee drivers/xen/blktap2/ring.c
--- a/drivers/xen/blktap2/ring.c        Mon Aug 02 11:02:18 2010 +0100
+++ b/drivers/xen/blktap2/ring.c        Tue Aug 10 15:46:56 2010 +0100
@@ -112,12 +112,9 @@ blktap_ring_clear_pte(struct vm_area_str
 
        offset  = (int)((uvaddr - vma->vm_start) >> PAGE_SHIFT);
        page    = map[offset];
-       if (page) {
-               ClearPageReserved(page);
-               if (PageBlkback(page)) {
-                       ClearPageBlkback(page);
-                       set_page_private(page, 0);
-               }
+       if (page && PageBlkback(page)) {
+               ClearPageBlkback(page);
+               set_page_private(page, 0);
        }
        map[offset] = NULL;
 

_______________________________________________
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®.