From patchwork Thu Oct 13 22:57:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Vishal Moola (Oracle)" X-Patchwork-Id: 13006553 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A02D0C4332F for ; Thu, 13 Oct 2022 22:57:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2A3B86B0074; Thu, 13 Oct 2022 18:57:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 252446B0075; Thu, 13 Oct 2022 18:57:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 11AF46B0078; Thu, 13 Oct 2022 18:57:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id F3F206B0074 for ; Thu, 13 Oct 2022 18:57:29 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C40D3802C9 for ; Thu, 13 Oct 2022 22:57:29 +0000 (UTC) X-FDA: 80017439418.06.CA027A3 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by imf11.hostedemail.com (Postfix) with ESMTP id 6657840020 for ; Thu, 13 Oct 2022 22:57:29 +0000 (UTC) Received: by mail-pj1-f49.google.com with SMTP id a5-20020a17090aa50500b002008eeb040eso6509482pjq.1 for ; Thu, 13 Oct 2022 15:57:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=im+EFOaVf40VxAsoOXFLr7F3yCNaLvihTEshtimgLMg=; b=K8T6XcUKsWGlWxfEwBBRyJVoiQrRv4ZdmvW2rGVCVwv56rTj277O3thfomZeAxxoz7 utNmPVwtcI3/BKdWDz1U+3XxmHL04do/Rlfmb6R9q3isLPcwu9Mj5+3fH8+CdhzyjKtF YVxVsvBVlvgbmyW/a8rVB3MI+Teb7NkEdp9GJ7q3PSpJgcGh4JeU/Yt8lE1nVWIS1clr irH7XLPa+PnQAfHR+Zttj2cZnIADb22qpvNbRiVmOklO750gtgJhrinWY7R4HdrSslfV D2zI8Gumk8nb5dxTv+b4H3Du6+ZDcuR8FfnBnlq2rXhTI4+U5b5xWSLOa4xWJfTrRswL yamw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=im+EFOaVf40VxAsoOXFLr7F3yCNaLvihTEshtimgLMg=; b=zm6DtCci0tOqO9iVH403Re6SHAz2KbsxPWP1mIyNpiUOv2wr5Co3HfoOVTtOogUGjl PtV2zK+6Fun2U0Z+GyBJU0CbK+XeDy7krYQ1bznA2kmDSQ8YnDQ9JF+ei4xpFpwL2W++ 1BpwgGr0NQLVRZlU67gpQTxqluSKfP1gjQ51qXmjLPCBZj4roGMJispxqWrUjmsicxqN 9bDK6Qop0rlbnmZ+U8M/kOyPz4DmSkUOGDcmmqq1+9nUMHe7sdpNpljD+AMFU8o2PAlO 4W44/+tBL2UcFj5gqidJJSzHt0hi3yZcx1eamNqEiq9/GrRsI8rtiATNOLjeipM0wFYF a5FQ== X-Gm-Message-State: ACrzQf2Cetnc+WqH9Sd93tT5mKt4RCUK+IiY4q05NVf1rwL0VXKoDYap AD+m+9quDN8TfXT9Y7DNZvA= X-Google-Smtp-Source: AMsMyM6XgYfLVibNZDRsU+a+L3JHrLUNk6SCmNHRw98/nhGdS9JHOVGEBvaJNCrJAMZpZs16bxW5/Q== X-Received: by 2002:a17:902:dad2:b0:179:ee21:22a8 with SMTP id q18-20020a170902dad200b00179ee2122a8mr2022153plx.70.1665701848063; Thu, 13 Oct 2022 15:57:28 -0700 (PDT) Received: from vmfolio.. (c-76-102-73-225.hsd1.ca.comcast.net. [76.102.73.225]) by smtp.googlemail.com with ESMTPSA id lx4-20020a17090b4b0400b001fde655225fsm7480269pjb.2.2022.10.13.15.57.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Oct 2022 15:57:26 -0700 (PDT) From: "Vishal Moola (Oracle)" To: akpm@linux-foundation.org Cc: willy@infradead.org, hughd@google.com, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Vishal Moola (Oracle)" Subject: [PATCH v2 0/2] Rework find_get_entries() and find_lock_entries() Date: Thu, 13 Oct 2022 15:57:06 -0700 Message-Id: <20221013225708.1879-1-vishal.moola@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1665701849; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=im+EFOaVf40VxAsoOXFLr7F3yCNaLvihTEshtimgLMg=; b=sIghOPmnP0h4eNgmb9IbbJjYW4vzO5eeJpVHLSYm4KjFoktpkqxhJtZjP02WkfagKqhuqT o5b8gfcHlFSJJHNQltnd/N/avlCnOaJGarPfL7rt77crX6wofVqH93YqbQ+fsw63ADTYGi nC7dIgOPvlSrc0DH4Z9GwCLnb+Q00JU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=K8T6XcUK; spf=pass (imf11.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1665701849; a=rsa-sha256; cv=none; b=PVSNRtWrl8lJw4VJbWHB5tTBMlc5OMZ97EwLkbknvTxOJDCxvsjqWxhCJ9BV0p7lU/EJOF 4VmzzfzLl3h17UphnkoJlFXD6UnQ567nxxeggYfyq9/za4x/l+CYL2uI+v6CpZokfd1vU3 p2p3TFr6cWfeK9zVrzmCCs8pIcLObWo= X-Rspam-User: X-Rspamd-Server: rspam11 Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=K8T6XcUK; spf=pass (imf11.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Stat-Signature: mzborwcjbjr9tia79hrze691xwhnt81z X-Rspamd-Queue-Id: 6657840020 X-HE-Tag: 1665701849-49105 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Originally the callers of find_get_entries() and find_lock_entries() were keeping track of the start index themselves as they traverse the search range. This resulted in hacky code such as in shmem_undo_range(): index = folio->index + folio_nr_pages(folio) - 1; where the - 1 is only present to stay in the right spot after incrementing index later. This sort of calculation was also being done on every folio despite not even using index later within that function. These patches change find_get_entries() and find_lock_entries() to calculate the new index instead of leaving it to the callers so we can avoid all these complications. --- v2: Fixed an issue when handling shadow entries Dropped patches removing the indices array; it is required for value entries Vishal Moola (Oracle) (2): filemap: find_lock_entries() now updates start offset filemap: find_get_entries() now updates start offset mm/filemap.c | 32 +++++++++++++++++++++++++------- mm/internal.h | 4 ++-- mm/shmem.c | 19 ++++++------------- mm/truncate.c | 30 ++++++++++-------------------- 4 files changed, 43 insertions(+), 42 deletions(-)