Jan Beulich
2010-Aug-10 14:04 UTC
[Xen-devel] [PATCH] linux/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@novell.com> Cc: Jake Wires <Jake.Wires@citrix.com> Cc: Dutch Meyer <dmeyer@cs.ubc.ca> Cc: Jeremy Fitzhardinge <jeremy@goop.org> --- a/drivers/xen/blktap2/device.c +++ b/drivers/xen/blktap2/device.c @@ -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); --- a/drivers/xen/blktap2/ring.c +++ b/drivers/xen/blktap2/ring.c @@ -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-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel