Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756460Ab2FJKuX (ORCPT ); Sun, 10 Jun 2012 06:50:23 -0400 Received: from mail-bk0-f46.google.com ([209.85.214.46]:59515 "EHLO mail-bk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756406Ab2FJKuS (ORCPT ); Sun, 10 Jun 2012 06:50:18 -0400 From: Sasha Levin To: dan.magenheimer@oracle.com, konrad.wilk@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sasha Levin Subject: [PATCH v3 09/10] mm: frontswap: split out function to clear a page out Date: Sun, 10 Jun 2012 12:51:07 +0200 Message-Id: <1339325468-30614-10-git-send-email-levinsasha928@gmail.com> X-Mailer: git-send-email 1.7.8.6 In-Reply-To: <1339325468-30614-1-git-send-email-levinsasha928@gmail.com> References: <1339325468-30614-1-git-send-email-levinsasha928@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1706 Lines: 53 Signed-off-by: Sasha Levin --- mm/frontswap.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mm/frontswap.c b/mm/frontswap.c index 7da55a3..c056f6e 100644 --- a/mm/frontswap.c +++ b/mm/frontswap.c @@ -120,6 +120,12 @@ void __frontswap_init(unsigned type) } EXPORT_SYMBOL(__frontswap_init); +static inline void __frontswap_clear(struct swap_info_struct *sis, pgoff_t offset) +{ + frontswap_clear(sis, offset); + atomic_dec(&sis->frontswap_pages); +} + /* * "Store" data from a page to frontswap and associate it with the page's * swaptype and offset. Page must be locked and in the swap cache. @@ -152,10 +158,8 @@ int __frontswap_store(struct page *page) the (older) page from frontswap */ inc_frontswap_failed_stores(); - if (dup) { - frontswap_clear(sis, offset); - atomic_dec(&sis->frontswap_pages); - } + if (dup) + __frontswap_clear(sis, offset); } if (frontswap_writethrough_enabled) /* report failure so swap also writes to swap device */ @@ -200,8 +204,7 @@ void __frontswap_invalidate_page(unsigned type, pgoff_t offset) trace_frontswap_invalidate_page(type, offset, sis, frontswap_test(sis, offset)); if (frontswap_test(sis, offset)) { frontswap_ops.invalidate_page(type, offset); - atomic_dec(&sis->frontswap_pages); - frontswap_clear(sis, offset); + __frontswap_clear(sis, offset); inc_frontswap_invalidates(); } } -- 1.7.8.6 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/