Commit:     7f015072348a14f16d548be557ee58c5c55df0aa
Parent:     6572bc28de150aaa6ca182eaf3e60c199ba48630
Author:     Jeremy Fitzhardinge <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 17 13:55:03 2007 +1000
Committer:  Tim Shimmin <[EMAIL PROTECTED]>
CommitDate: Wed Oct 17 14:14:35 2007 +1000

    [XFS] eagerly remove vmap mappings to avoid upsetting Xen
    XFS leaves stray mappings around when it vmaps memory to make it virtually
    contigious. This upsets Xen if one of those pages is being recycled into a
    pagetable, since it finds an extra writable mapping of the page.
    This patch solves the problem in a brute force way, by making XFS always
    eagerly unmap its mappings.
    SGI-PV: 971902
    SGI-Modid: xfs-linux-melb:xfs-kern:29886a
    Signed-off-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]>
    Signed-off-by: David Chinner <[EMAIL PROTECTED]>
    Signed-off-by: Tim Shimmin <[EMAIL PROTECTED]>
 fs/xfs/linux-2.6/xfs_buf.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index 8d9298c..d5b2d2b 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -187,6 +187,19 @@ free_address(
        a_list_t        *aentry;
+#ifdef CONFIG_XEN
+       /*
+        * Xen needs to be able to make sure it can get an exclusive
+        * RO mapping of pages it wants to turn into a pagetable.  If
+        * a newly allocated page is also still being vmap()ed by xfs,
+        * it will cause pagetable construction to fail.  This is a
+        * quick workaround to always eagerly unmap pages so that Xen
+        * is happy.
+        */
+       vunmap(addr);
+       return;
        aentry = kmalloc(sizeof(a_list_t), GFP_NOWAIT);
        if (likely(aentry)) {
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to