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 ABA8CC433F5 for ; Sun, 19 Dec 2021 13:39:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C0DAB6B0071; Sun, 19 Dec 2021 08:39:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BBC666B0073; Sun, 19 Dec 2021 08:39:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A83696B0074; Sun, 19 Dec 2021 08:39:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0093.hostedemail.com [216.40.44.93]) by kanga.kvack.org (Postfix) with ESMTP id 968266B0071 for ; Sun, 19 Dec 2021 08:39:07 -0500 (EST) Received: from smtpin31.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 5D0F176B74 for ; Sun, 19 Dec 2021 13:38:51 +0000 (UTC) X-FDA: 78934649262.31.41F1C26 Received: from mail-ua1-f43.google.com (mail-ua1-f43.google.com [209.85.222.43]) by imf28.hostedemail.com (Postfix) with ESMTP id 038E8C0040 for ; Sun, 19 Dec 2021 13:38:50 +0000 (UTC) Received: by mail-ua1-f43.google.com with SMTP id y23so13050064uay.7 for ; Sun, 19 Dec 2021 05:38:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bI280telFaJwUWnCTGOVucNdMzF/wNLC2jH94KdWJvI=; b=JpNScKqHuNhoreNPYO3wb82lyjROJo4t2vTiX77Jix5VbXKk0rOpa7GTo9alx/+85T WA1IgEQA3CQKXvwAasmtRDiLJeygPacKT8cCXg5gjcyl1k5SxWBARyUFHKTi3boJTYz/ c7lliYvdxYtqn9jpPRLp/av4cMGOy3uxVtcF9uwwHMAYSu9wAmysBXiA3DjowJ4EkacG 4r3Zeiil9KnLoRtiKkaC850p9Ho14wq6V+n4pTmyBs9SMzh/df/NrgQCxSEeHFm3St7W ANpiQQXQBck31bgUfHTQjdIbP0ZGCNUKi6kRUfidBGCH54gyLpOpWousev/gx3I18Hfj +ovA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bI280telFaJwUWnCTGOVucNdMzF/wNLC2jH94KdWJvI=; b=jz1kQ69oazmI3DnSqdxDaefnhRepTpgXbHhugplm12Olwd6XaWI/bCK2Cfx6whuujY gr46ByhGnwSrciX6fzkAOSRd8MvQzon6L1BqkoevEy2LQX6fztIaIw06PLb/5ZH5HnLB lOxS6BicIsCIe4okCbrYFmYXhxrf4n9VVFTdOfb85v6bD6Lqe8enM7869zCFPI89uMs9 lv+gcjzaxleG7n1q+nlS9NscA4lXX9gHP1hQTPDJWoBoWd3E7Ugp+S6VoAiBfyMNNR2X tP9mr2+23n7cPTnwCOxMA+r7EPoq++HkyUAMRciX5E6aAB1s7I1V8MciRK4yh+waJ5jz +o+g== X-Gm-Message-State: AOAM5311RGdIkFjgKd8+v6aLPCkJyN4UgXLimPKenNkI526Ox0/sYm88 gZvJ9z5mCkP+4Pq+IUwvfHg14/lbE7Read4NI4o= X-Google-Smtp-Source: ABdhPJy9Ga6BKjziaeH527tlGnmVQhnHJH5VjPeSXHOyfvXjirVq8zXYRKZ1l3kq7oXqglnplsiwqyIMYNfuA9h9eSI= X-Received: by 2002:a05:6102:1613:: with SMTP id cu19mr3426842vsb.25.1639921130249; Sun, 19 Dec 2021 05:38:50 -0800 (PST) MIME-Version: 1.0 References: <163969801519.20885.3977673503103544412.stgit@noble.brown> <163969850302.20885.17124747377211907111.stgit@noble.brown> In-Reply-To: <163969850302.20885.17124747377211907111.stgit@noble.brown> From: Mark Hemment Date: Sun, 19 Dec 2021 13:38:39 +0000 Message-ID: Subject: Re: [PATCH 08/18] MM: Add AS_CAN_DIO mapping flag To: NeilBrown Cc: Trond Myklebust , Anna Schumaker , Chuck Lever , Andrew Morton , Mel Gorman , Christoph Hellwig , David Howells , linux-nfs@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 038E8C0040 X-Stat-Signature: gdwwed49jdanobwaci1djfnmmpij578d Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=googlemail.com header.s=20210112 header.b=JpNScKqH; spf=pass (imf28.hostedemail.com: domain of markhemm@googlemail.com designates 209.85.222.43 as permitted sender) smtp.mailfrom=markhemm@googlemail.com; dmarc=pass (policy=quarantine) header.from=googlemail.com X-HE-Tag: 1639921130-981980 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: On Thu, 16 Dec 2021 at 23:57, NeilBrown wrote: > > Currently various places test if direct IO is possible on a file by > checking for the existence of the direct_IO address space operation. > This is a poor choice, as the direct_IO operation may not be used - it is > only used if the generic_file_*_iter functions are called for direct IO > and some filesystems - particularly NFS - don't do this. > > Instead, introduce a new mapping flag: AS_CAN_DIO and change the various > places to check this (avoiding a pointer dereference). > unlock_new_inode() will set this flag if ->direct_IO is present, so > filesystems do not need to be changed. ... > diff --git a/fs/inode.c b/fs/inode.c > index 6b80a51129d5..bae65ccecdb1 100644 > --- a/fs/inode.c > +++ b/fs/inode.c > @@ -1008,6 +1008,9 @@ EXPORT_SYMBOL(lockdep_annotate_inode_mutex_key); > void unlock_new_inode(struct inode *inode) > { > lockdep_annotate_inode_mutex_key(inode); > + if (inode->i_mapping->a_ops && > + inode->i_mapping->a_ops->direct_IO) > + set_bit(AS_CAN_DIO, &inode->i_mapping->flags); > spin_lock(&inode->i_lock); > WARN_ON(!(inode->i_state & I_NEW)); > inode->i_state &= ~I_NEW & ~I_CREATING; Does d_instantiate_new() also need to set AS_CAN_DIO? Mark