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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>