Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1448901imu; Wed, 9 Jan 2019 19:11:02 -0800 (PST) X-Google-Smtp-Source: ALg8bN4p0T2ikVybA/4SfSc6Hc/R27JtOg5ngC/pQPwcRxr2c7mtXwHJJLxmaUWp7tZ3KJn/WG18 X-Received: by 2002:a62:f907:: with SMTP id o7mr8408453pfh.244.1547089862479; Wed, 09 Jan 2019 19:11:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547089862; cv=none; d=google.com; s=arc-20160816; b=NTp8xeSgalw/MUkev8y3ipSjMiY48fY9EuXFUhK8C0UdnsxBNe3h5r5ynRrRWb28mm Ii9olI4GYlrplm3vFFGN9zGbsBS14YmcBwR73rZOdnsr8MhUvBksm1L0ZlubbSDlANaE mpB3lP6mKFnof4IPoK194R/6W1GjWsKYrpBuOVu607ts/U20PnyUA1yd0k7t9CCeaGQ3 PUJyedJrg+/nJgzT47HZ02NrUyyXDJv4Ebi5RsRLLHZvij7y6n90Ucf2OpHmvI2A5lXP PDxTMwcK/ZxGVSeZ/OYfmKq96hTX1N19MXQNcQcpmcEil5C9QXF7O2U/uVCGW0H5HJnB s5FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=feEpNlqpnoPxpeqMd/XrOoCASnhVqa5NxR5fyRNqcco=; b=srzwgSBjmRxbMFRhPL6WJcAMHpa7IfOrvplomqnZwmpuPRF/rXMOBmQ2Je/zFgikWM bnK/kpgYCVYGV/jehqQPTOKCUJdqCdrtgssjpWroj8wc4sJs2qJrso+NL7ELrtphX6wz 7MgI1USUj0btDyWJTLBz6v5mJibod8khTLj+wweVGUlfF72v1SmeTkLGWXbuKnfN4hZk 5YTmUP+H2C5DbzdhjRL1ByO7QWPPYS17ppYsrkVZMZEck3JGcEj9e0/dP3Atz+gvpwC9 WS7Lnanjcx58VlIifktfSbWW5uvkJWonZaoh5TQ3BiTOi0BnIvYfc4zA2YvrhT1o15Jm CDvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="Tv8H/vdq"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d4si4630496plj.334.2019.01.09.19.10.47; Wed, 09 Jan 2019 19:11:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="Tv8H/vdq"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727131AbfAJDJR (ORCPT + 99 others); Wed, 9 Jan 2019 22:09:17 -0500 Received: from mail-it1-f196.google.com ([209.85.166.196]:34085 "EHLO mail-it1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726875AbfAJDJR (ORCPT ); Wed, 9 Jan 2019 22:09:17 -0500 Received: by mail-it1-f196.google.com with SMTP id x124so14300403itd.1 for ; Wed, 09 Jan 2019 19:09:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=feEpNlqpnoPxpeqMd/XrOoCASnhVqa5NxR5fyRNqcco=; b=Tv8H/vdqTuaSxx6YM7Tw7ztGe3HG+L/n4C482Wi5x1By3kaM1qCnpEIfvnqdP5T2qY n4B+UCkE0CK2HWMreDyQ0g7BL22CUf86NgcZN6/gbQb9t8lRTN+MH9y/6Npy4Kr824lo pCW5ay6gwu1oDtDQXfHBe75mGSUwVptoAITTxjLTTONFPseTtVIssVGpvZO23MT8RnDV T7khCLNzXzqh0RYFavFyzXU5DwCA4S6NjyTTRQcGLHVeTKTNi8trYXP88L40ldCCwhkg v/zitaBmQXlVj/+QJcXpKc98EPpEMmyy5PJC4/7n0Ddd1zepbGxGZtxbaPMqKHTIvC3p i75A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=feEpNlqpnoPxpeqMd/XrOoCASnhVqa5NxR5fyRNqcco=; b=fAJPoxOnT0uaAJ2E38EEWxuA/DXL5NcwmDpc7RdjYacmcjjb4gBL2TgwASRobc0oC2 yx5OYeCziL/OyCxcS87zAglwGo2Fl5h84Ulynr/VkARjx8x3/AZqvLkf+wZRc02TBjji e6vrUE1Pw9TkwgHzUqBWzY1SfwIJhlvoBwOoX1ZOzLYKvk3AUvLshTFcoL6JTf5M+n2B K+Ch/244+QVUXzx3z3cnUxJMnLaxPvWgWqJlkpDHOCUTAw59S/Qu7DLvglLUhCDA5tty U2IkIQTPv07WSkBGUEiYeZRL+sr8g4mjJfHUN7myV99vo5OW2+ZpiFsKuRRf2w6y3qVD HfJA== X-Gm-Message-State: AJcUukc2j59BIuNiw232Kn/BDclbPigdVUNIw1AIXJntUixTUdwF2MCr ZDqap8o4c40ftnN1HZdjDtlC7w== X-Received: by 2002:a24:cc05:: with SMTP id x5mr6032700itf.82.1547089756085; Wed, 09 Jan 2019 19:09:16 -0800 (PST) Received: from yuzhao.bld.corp.google.com ([2620:15c:183:0:a0c3:519e:9276:fc96]) by smtp.gmail.com with ESMTPSA id n124sm8977731itn.4.2019.01.09.19.09.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Jan 2019 19:09:15 -0800 (PST) From: Yu Zhao To: Matthew Wilcox , Andrew Morton , Amir Goldstein , Dave Chinner , "Darrick J . Wong" Cc: Johannes Weiner , Souptick Joarder , Hugh Dickins , "Kirill A . Shutemov" , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yu Zhao Subject: [PATCH] mm/shmem: make find_get_pages_range() work for huge page Date: Wed, 9 Jan 2019 20:08:38 -0700 Message-Id: <20190110030838.84446-1-yuzhao@google.com> X-Mailer: git-send-email 2.20.1.97.g81188d93c3-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org find_get_pages_range() and find_get_pages_range_tag() already correctly increment reference count on head when seeing compound page, but they may still use page index from tail. Page index from tail is always zero, so these functions don't work on huge shmem. This hasn't been a problem because, AFAIK, nobody calls these functions on (huge) shmem. Fix them anyway just in case. Signed-off-by: Yu Zhao --- mm/filemap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 81adec8ee02c..cf5fd773314a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1704,7 +1704,7 @@ unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start, pages[ret] = page; if (++ret == nr_pages) { - *start = page->index + 1; + *start = xas.xa_index + 1; goto out; } continue; @@ -1850,7 +1850,7 @@ unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, pages[ret] = page; if (++ret == nr_pages) { - *index = page->index + 1; + *index = xas.xa_index + 1; goto out; } continue; -- 2.20.1.97.g81188d93c3-goog