If a frontswap dup-store failed, it should invalidate the old page in backend and return failure. This patch add this missing handle. According to the comments of __frontswap_store(), it should have been there. Reported-by: changkun.li <xfishcoder@xxxxxxxxx> Signed-off-by: Weijie Yang <weijie.yang@xxxxxxxxxxx> --- mm/frontswap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/frontswap.c b/mm/frontswap.c index df067f1..171c6c0 100644 --- a/mm/frontswap.c +++ b/mm/frontswap.c @@ -245,8 +245,10 @@ int __frontswap_store(struct page *page) the (older) page from frontswap */ inc_frontswap_failed_stores(); - if (dup) + if (dup) { __frontswap_clear(sis, offset); + frontswap_ops->invalidate_page(type, offset); + } } if (frontswap_writethrough_enabled) /* report failure so swap also writes to swap device */ -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html