From 9a8cf4855d1335ab60d8a855e372bedc1e165dc8 Mon Sep 17 00:00:00 2001 From: Izik Eidus <ieidus@redhat.com> Date: Wed, 22 Apr 2009 09:32:34 +0300 Subject: [PATCH 07/15] fix effective bug - 497042 this fix effective bug that the virtual address of the second page inside the stable tree was not saved. (this is just effective issue, nothing else) Thanks. Signed-off-by: Izik Eidus <ieidus@redhat.com> Message-ID: <49EEBA02.9010706@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Acked-by: Andrea Arcangeli <aarcange@redhat.com> Acked-by: "Michael S. Tsirkin" <mst@redhat.com> Acked-by: john cooper <john.cooper@redhat.com> RH-Upstream-status: pending Bugzilla: 500263 --- kernel/ksm/ksm_main.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/kernel/ksm/ksm_main.c b/kernel/ksm/ksm_main.c index 02c7a90..40a0258 100644 --- a/kernel/ksm/ksm_main.c +++ b/kernel/ksm/ksm_main.c @@ -1002,6 +1002,14 @@ static int cmp_and_merge_page(struct ksm_scan *ksm_scan, struct page *page) tree_item, tmp_rmap_item)) { if (rmap_item) { rmap_item->stable_tree = 1; + rmap_item->next = tmp_rmap_item->next; + rmap_item->prev = tmp_rmap_item; + if (tmp_rmap_item->next) + tmp_rmap_item->next->prev = + rmap_item; + tmp_rmap_item->next = rmap_item; + rmap_item->tree_item = + tmp_rmap_item->tree_item; } } } -- 1.6.3.rc4.29.g8146