Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp803589pxt; Thu, 5 Aug 2021 12:05:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwFF2L6LuWqcnHbmQlc2sjsSDVJO6VHuS3JyiFBawK2baDyHc9O9pBobgvhMFwE/q7sB+8D X-Received: by 2002:aa7:ce08:: with SMTP id d8mr8660595edv.174.1628190315024; Thu, 05 Aug 2021 12:05:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628190315; cv=none; d=google.com; s=arc-20160816; b=qPVOHy1xWGLnGicXb0OnNgHDYAScTq33S5Ev7Tbs5ncCKrX7RoE9s+rFIwzMTg5y5p DaJ2JGscHbT+e829VsPtgMc7xph/9wzXReDlR1rAFcn9yGgj9kVg3ofja4gSK135HmOB KKGVkaGaVawhvamtn4F5H9y+j2/4wZhdLnrpfhksKjmpst8O+TCoASHVUrh7eJcH1Gsq f3R9P+iNmtF47pcXFzr4FFN3dluiVUKpe41i6UqO0XrdJvS9kPz7/Rn/2lEdYfZbwzcU gHZVoniDBz/Ik42ncIRejuOHjEXAGhahlP4JaK8OdGyNTvi3v07xdaHRlJrz8gMjaH4I 2WMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:references:in-reply-to :message-id:date:subject:cc:to:from; bh=PemoCK+8V7+m5R5SIu8yJneOB2SR+wmzMLWeo0U48u8=; b=HxK6T0KwChOAjQX6u95X9k4wMka4KlI2yh50bSELVuV4JpeH8E5ea3LZNQzdMCdjV9 +4VIpLKJJc1xeNMpPCf5NFRDbftnJLVd5rAv4giA9LsxFIOwgOj+QS/FT9mrVthSxUIc mmheB5ZwsGxX6+1BHJkQylSPmy9cx0KV0XyoJ0vvJOypvOz8MvazR/DZmsE0cs0jTVoC +fH48A+pRfhvf9nWqDc8jvkc7WvVhPvj8cpJ60ChGCpcMxzQDfMe0geOdziwhCXwnzIu +qPDY2lHuDiOp9TQGxqluJ1LsOxX26Ul6eeaoNh7gx3PjTXaHhyFI95qQOR92iiC0gbw j06Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g20si6237823ejk.395.2021.08.05.12.04.50; Thu, 05 Aug 2021 12:05:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241416AbhHEPGZ (ORCPT + 99 others); Thu, 5 Aug 2021 11:06:25 -0400 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]:46858 "EHLO out30-133.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232752AbhHEPGX (ORCPT ); Thu, 5 Aug 2021 11:06:23 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01424;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=4;SR=0;TI=SMTPD_---0Ui3E80D_1628175967; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0Ui3E80D_1628175967) by smtp.aliyun-inc.com(127.0.0.1); Thu, 05 Aug 2021 23:06:08 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] mm: migrate: Move the page count validation to the proper place Date: Thu, 5 Aug 2021 23:05:56 +0800 Message-Id: <1f7e1d083864fbb17a20a9c8349d2e8b427e20a3.1628174413.git.baolin.wang@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We've got the expected count for anonymous page or file page by expected_page_refs() at the beginning of migrate_page_move_mapping(), thus we should move the page count validation a little forward to reduce duplicated code. Signed-off-by: Baolin Wang --- mm/migrate.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 239b238..5559571 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -386,11 +386,10 @@ int folio_migrate_mapping(struct address_space *mapping, int expected_count = expected_page_refs(mapping, &folio->page) + extra_count; long nr = folio_nr_pages(folio); - if (!mapping) { - /* Anonymous page without mapping */ - if (folio_ref_count(folio) != expected_count) - return -EAGAIN; + if (folio_ref_count(folio) != expected_count) + return -EAGAIN; + if (!mapping) { /* No turning back from here */ newfolio->index = folio->index; newfolio->mapping = folio->mapping; @@ -404,8 +403,7 @@ int folio_migrate_mapping(struct address_space *mapping, newzone = folio_zone(newfolio); xas_lock_irq(&xas); - if (folio_ref_count(folio) != expected_count || - xas_load(&xas) != folio) { + if (xas_load(&xas) != folio) { xas_unlock_irq(&xas); return -EAGAIN; } -- 1.8.3.1