From mboxrd@z Thu Jan 1 00:00:00 1970 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 36563C531DF for ; Thu, 22 Aug 2024 06:37:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B97AA6B00D9; Thu, 22 Aug 2024 02:37:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B46E294000B; Thu, 22 Aug 2024 02:37:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E8196B00DC; Thu, 22 Aug 2024 02:37:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 77BDC94000B for ; Thu, 22 Aug 2024 02:37:16 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 31919C04EF for ; Thu, 22 Aug 2024 06:37:16 +0000 (UTC) X-FDA: 82478924472.20.5623363 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf01.hostedemail.com (Postfix) with ESMTP id 79CD540010 for ; Thu, 22 Aug 2024 06:37:14 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=pA8e96YP; spf=none (imf01.hostedemail.com: domain of BATV+dfc8a69a7fb43479e7c6+7669+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+dfc8a69a7fb43479e7c6+7669+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724308527; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YVqmFfkyhwbFCPM/4edvmn3bk8ddwJ9D/OM4QCDt1Gc=; b=XfizfsnF73AA2UrWChGs4nMtk/eqjOKIIpSTTu9z1XMOWU82B93On6PYoo6S7i0KcCqA6l y/sVfktAblva2y2e0TiwJxVDdif1k4Yeal0qpYGTTDBxhJcjF+zjIUMsgujYO6t4sRO052 GXwOzd+MomtawGGLqa75MCieOPLmfZY= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=pA8e96YP; spf=none (imf01.hostedemail.com: domain of BATV+dfc8a69a7fb43479e7c6+7669+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+dfc8a69a7fb43479e7c6+7669+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724308527; a=rsa-sha256; cv=none; b=Q8pmOZsL6kDq2Du7ogMCet84C3WMMlZGZMtJF08SxHzUqDzmfLh6mAdhx2mu6lZfkX+TcR cQt2ueNyJcb/ClAQ2Cu3nYWGYj13xMKe/FuU7jRhzo3hkRsRL8wO+Vk/i2e5CDSihHShpH TqwRiUsz2J+/7zmJmKpPnIod1GmkEAE= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=YVqmFfkyhwbFCPM/4edvmn3bk8ddwJ9D/OM4QCDt1Gc=; b=pA8e96YPaXfS6Dyb6ttOptHB+n oOV+XXXxrrVqKUbaJ7F3ifCCWLsspD0D16W0BAwroSghWHiKY8m8Ry7XVtJp3njJDWPj7VGObTe2n YKDW0Vwse/d3qoUzUNunwDRnfUjrx6sjx7h7kklclOKTuXjNy+iz852SGgfz2nyzt5G9fpspzna24 xrsD+w+cPmP4iL55M3ZpvTTQ3jXr+En0eKAp6VRB6pIg+Y7XmJd5gjjriSdhSuEJuSE42wg2VdUqr ++5UI71CMvz/TSHIrD5yy1sIO87OiVKwT5uDObmB/podN/BrlwR/c+Mds9lr+IfTjrERfUHkxfnnM aMVrxTGQ==; Received: from hch by bombadil.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sh1RY-0000000Bdc4-04bN; Thu, 22 Aug 2024 06:37:12 +0000 Date: Wed, 21 Aug 2024 23:37:11 -0700 From: Christoph Hellwig To: Pavel Begunkov Cc: io-uring@vger.kernel.org, Jens Axboe , Conrad Meyer , linux-block@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2 3/7] filemap: introduce filemap_invalidate_pages Message-ID: References: <5bf2b0f08ec25fa649f04c0847722c6b028f660c.1724297388.git.asml.silence@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5bf2b0f08ec25fa649f04c0847722c6b028f660c.1724297388.git.asml.silence@gmail.com> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 79CD540010 X-Stat-Signature: 7u95pig1qx7uji38oa6ik5q36sgd8d1k X-Rspam-User: X-HE-Tag: 1724308634-161457 X-HE-Meta: U2FsdGVkX19AjsIJQbb2WlMcR+81FE0Z5phk8+ilcsRfjJsm4RbVzrtuVuY/+bOE9LBncvoyxX5ykPQIYfQEILFWd7oN3b1CBwnqr2ohkwfCaUMu9SJjZzt0yFtrNx3ojv+lYbyD7gkPfkx/Vozlz12dPdyiAs26m4gts9OLwVEvjvCEArWtTOmby4BPJWjWDXAEif076B0T8q8zg0WU6C0drwIw42Y1WmmHwlcxocemvh1oVXz7QGI9hz8iARRN1G1sSimq1q2cmD3SLKz8sAmxp3fdT9zL7aIl4XCwERE2qg2w61DFhprOfQ9KXrfDZO0wWSowxBqCM2jBLCBfH78SJp2ryBj9fmcZ4J1jVHaKLLQJZwcKQRXx8Lbe14jeOSmwSMZDArTS9euELFZQ6iYwbH6z0w15MdyMcZqp9mtegqPrdiKgBOqomZiJ1RNM+4220NdZREs8HOwViKuSG4O68JpnHSahF4uo7Pib+JO9gtwm2e6CENLKBALTgjLETzQ/yB+Oxo5+HebKOPDocxlTBXgA18WxvS76oG5qymxhEUfZDtQdcZ/+DCy1kpAo7Lx5op3wIk4H6AaMAamrWLkuBc5YcoePKpi3t5tAyB/4i1FvYsh/Kkj8QGH+/ibQM1JfWe8RPOyUsnxtN//XFYlXGISxFRXyIW+CN9bl3QiwSK5dmxh70k0NdV8T/N0oYGkAnkSB/mw/6VQciZkM4X4ME2Cwyh9TKNeFh94hhhv+AAvjWTbmRJt0s8KXIsKmDXKdUOFuf9KtONrOEqYNKunG2+aWUJl9kh0eLljkJiOpsN2JCWBwKswtr9jt/VjRnPg6wFAmZ//MjzsEsoYSTDi6/ecWqNcy1CRfBmI9OX9gLqg43EGDUzwrdOx3S+ndugtrcT9sPYKdTYD4xrHtmBUKtbYDeLJkLe4vk+F/Q6h+IanRD7nbAVTopROM/Th3xj/6STYDATS5c4/QThT M8fgRAu+ BPBsePzEndXujQdxmiocMMK0CRyi56zMz4MubJh0Gy/n3JpR+klW+BRjHTQ03M6DZce9MquysjHaZjYva2dSV/vILf4kUGo+UU1i7qmpb8FlJcx8Hn3EsB2azOIN8pJK634WOSz822fhG6/jO3l5X8VOSdF2Y5nu0NdP/JQHsPqwVovSVkyS005t+xrYLc4g9HPcmibKSvFotiMWM9f6/vUNITnkGETqdQGhIvJ+1ZR5cOogGjmurlT5nEFRH7WkZlziDUwMzvK/+Sx0eJPyeWFEqTAl3tS6xVJfsA5my+4O3F2FiZAb09d+uGNfxKMDpmMC9Qf+u1dKghRqqS6Dzm2WikYcyyhw0KK5vw1SyNvIAZzS4DX7CGs5+fXgYMzPfBDcDVfrJNwbcKE/VST6wsqbpvAdUiqGndaa4+9QxWk0vhvHA+uzcZ6Q210fWeffXiFcHaROEBdEPNy3xBXgbAgUxhOupWRc9n/LRQS3iFUrSJ4lXOD4o2nEqLPOj3mRut+oPnMs2vBP0EH2/lbj8P2jqcoaOF8gCT6XQCSygcbUgHRX2ofLjdM+LY9lcbTbEIeIfR2XOPAu2eK04J3D10jmVUA== 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: List-Subscribe: List-Unsubscribe: On Thu, Aug 22, 2024 at 04:35:53AM +0100, Pavel Begunkov wrote: > kiocb_invalidate_pages() is useful for the write path, however not > everything is backed by kiocb and we want to reuse the function for bio > based discard implementation. Extract and and reuse a new helper called > filemap_invalidate_pages(), which takes a argument indicating whether it > should be non-blocking and might return -EAGAIN. > > Signed-off-by: Pavel Begunkov > --- > include/linux/pagemap.h | 2 ++ > mm/filemap.c | 18 +++++++++++++----- > 2 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h > index d9c7edb6422b..e39c3a7ce33c 100644 > --- a/include/linux/pagemap.h > +++ b/include/linux/pagemap.h > @@ -32,6 +32,8 @@ int invalidate_inode_pages2_range(struct address_space *mapping, > pgoff_t start, pgoff_t end); > int kiocb_invalidate_pages(struct kiocb *iocb, size_t count); > void kiocb_invalidate_post_direct_write(struct kiocb *iocb, size_t count); > +int filemap_invalidate_pages(struct address_space *mapping, > + loff_t pos, loff_t end, bool nowait); > > int write_inode_now(struct inode *, int sync); > int filemap_fdatawrite(struct address_space *); > diff --git a/mm/filemap.c b/mm/filemap.c > index d62150418b91..74baec119239 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -2712,14 +2712,12 @@ int kiocb_write_and_wait(struct kiocb *iocb, size_t count) > } > EXPORT_SYMBOL_GPL(kiocb_write_and_wait); > > -int kiocb_invalidate_pages(struct kiocb *iocb, size_t count) > +int filemap_invalidate_pages(struct address_space *mapping, > + loff_t pos, loff_t end, bool nowait) > { > - struct address_space *mapping = iocb->ki_filp->f_mapping; > - loff_t pos = iocb->ki_pos; > - loff_t end = pos + count - 1; > int ret; > > - if (iocb->ki_flags & IOCB_NOWAIT) { > + if (nowait) { > /* we could block if there are any pages in the range */ > if (filemap_range_has_page(mapping, pos, end)) > return -EAGAIN; > @@ -2738,6 +2736,16 @@ int kiocb_invalidate_pages(struct kiocb *iocb, size_t count) > return invalidate_inode_pages2_range(mapping, pos >> PAGE_SHIFT, > end >> PAGE_SHIFT); > } > + > +int kiocb_invalidate_pages(struct kiocb *iocb, size_t count) > +{ > + struct address_space *mapping = iocb->ki_filp->f_mapping; > + loff_t pos = iocb->ki_pos; > + loff_t end = pos + count - 1; > + > + return filemap_invalidate_pages(mapping, pos, end, No real need for the end variable here. And maybe not for pos either.