From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759559AbcJ1Iav (ORCPT ); Fri, 28 Oct 2016 04:30:51 -0400 Received: from mga01.intel.com ([192.55.52.88]:52125 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759479AbcJ1Iar (ORCPT ); Fri, 28 Oct 2016 04:30:47 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,557,1473145200"; d="scan'208";a="1060512581" From: "Huang\, Ying" To: Hillf Danton Cc: "'Huang\, Ying'" , "'Andrew Morton'" , , , , , , , "'Hugh Dickins'" , "'Shaohua Li'" , "'Minchan Kim'" , "'Rik van Riel'" , "'Andrea Arcangeli'" , "'Kirill A . Shutemov'" Subject: Re: [PATCH -v4 RESEND 6/9] mm, THP, swap: Support to add/delete THP to/from swap cache References: <20161028055608.1736-1-ying.huang@intel.com> <20161028055608.1736-7-ying.huang@intel.com> <050a01d230f2$826f0b20$874d2160$@alibaba-inc.com> Date: Fri, 28 Oct 2016 16:30:43 +0800 In-Reply-To: <050a01d230f2$826f0b20$874d2160$@alibaba-inc.com> (Hillf Danton's message of "Fri, 28 Oct 2016 16:08:46 +0800") Message-ID: <87lgx87u4s.fsf@yhuang-dev.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Hillf, Hillf Danton writes: > On Friday, October 28, 2016 1:56 PM Huang, Ying wrote: >> >> @@ -109,9 +118,16 @@ int __add_to_swap_cache(struct page *page, swp_entry_t entry) >> * So add_to_swap_cache() doesn't returns -EEXIST. >> */ >> VM_BUG_ON(error == -EEXIST); >> - set_page_private(page, 0UL); >> ClearPageSwapCache(page); >> - put_page(page); >> + set_page_private(cur_page, 0UL); >> + while (i--) { >> + cur_page--; >> + cur_entry.val--; >> + set_page_private(cur_page, 0UL); >> + radix_tree_delete(&address_space->page_tree, >> + swp_offset(cur_entry)); >> + } > > Pull pages out of radix tree with tree lock held? OOPS, I should hold the tree lock for the error path too. Will update it in the next version. Thanks for pointing out this! Best Regards, Huang, Ying >> + page_ref_sub(page, nr); >> } >> >> return error; >>