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 X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C51FFC0650F for ; Tue, 30 Jul 2019 10:26:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9CB872089E for ; Tue, 30 Jul 2019 10:26:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732571AbfG3K0G (ORCPT ); Tue, 30 Jul 2019 06:26:06 -0400 Received: from verein.lst.de ([213.95.11.211]:49987 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727156AbfG3K0D (ORCPT ); Tue, 30 Jul 2019 06:26:03 -0400 Received: by verein.lst.de (Postfix, from userid 2407) id 4C21468B02; Tue, 30 Jul 2019 12:25:57 +0200 (CEST) Date: Tue, 30 Jul 2019 12:25:57 +0200 From: Christoph Hellwig To: Jerome Glisse Cc: Christoph Hellwig , john.hubbard@gmail.com, Andrew Morton , Alexander Viro , Anna Schumaker , "David S . Miller" , Dominique Martinet , Eric Van Hensbergen , Jason Gunthorpe , Jason Wang , Jens Axboe , Latchesar Ionkov , "Michael S . Tsirkin" , Miklos Szeredi , Trond Myklebust , Christoph Hellwig , Matthew Wilcox , linux-mm@kvack.org, LKML , ceph-devel@vger.kernel.org, kvm@vger.kernel.org, linux-block@vger.kernel.org, linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, samba-technical@lists.samba.org, v9fs-developer@lists.sourceforge.net, virtualization@lists.linux-foundation.org, John Hubbard , Minwoo Im Subject: Re: [PATCH 03/12] block: bio_release_pages: use flags arg instead of bool Message-ID: <20190730102557.GA1700@lst.de> References: <20190724042518.14363-1-jhubbard@nvidia.com> <20190724042518.14363-4-jhubbard@nvidia.com> <20190724053053.GA18330@infradead.org> <20190729205721.GB3760@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190729205721.GB3760@redhat.com> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Mon, Jul 29, 2019 at 04:57:21PM -0400, Jerome Glisse wrote: > > All pages releases by bio_release_pages should come from > > get_get_user_pages, so I don't really see the point here. > > No they do not all comes from GUP for see various callers > of bio_check_pages_dirty() for instance iomap_dio_zero() > > I have carefully tracked down all this and i did not do > anyconvertion just for the fun of it :) Well, the point is _should_ not necessarily do. iomap_dio_zero adds the ZERO_PAGE, which we by definition don't need to refcount. So we can mark this bio BIO_NO_PAGE_REF safely after removing the get_page there. Note that the equivalent in the old direct I/O code, dio_refill_pages, will be a little more complicated as it can match user pages and the ZERO_PAGE in a single bio, so a per-bio flag won't handle it easily. Maybe we just need to use a separate bio there as well. In general with series like this we should not encode the status quo an pile new hacks upon the old one, but thing where we should be and fix up the old warts while having to wade through all that code.