From: "NeilBrown" <neilb@suse.de>
To: "Mark Hemment" <markhemm@googlemail.com>
Cc: "Trond Myklebust" <trond.myklebust@hammerspace.com>,
"Anna Schumaker" <anna.schumaker@netapp.com>,
"Chuck Lever" <chuck.lever@oracle.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Mel Gorman" <mgorman@suse.de>,
"Christoph Hellwig" <hch@infradead.org>,
"David Howells" <dhowells@redhat.com>,
linux-nfs@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/18] MM: Add AS_CAN_DIO mapping flag
Date: Mon, 20 Dec 2021 07:59:56 +1100 [thread overview]
Message-ID: <163994759613.25899.17650220291128318661@noble.neil.brown.name> (raw)
In-Reply-To: <CANe_+Uj0ooR2QzNQLXihuoaWMCJMpo3yJNhP_9DyPaCzeO7v7w@mail.gmail.com>
On Mon, 20 Dec 2021, Mark Hemment wrote:
> On Thu, 16 Dec 2021 at 23:57, NeilBrown <neilb@suse.de> 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?
Yes it does - thanks for catching that. I'll update my patch.
Thanks,
NeilBrown
next prev parent reply other threads:[~2021-12-19 21:00 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-16 23:48 [PATCH 00/18 V2] Repair SWAP-over-NFS NeilBrown
2021-12-16 23:48 ` [PATCH 03/18] MM: use ->swap_rw for reads from SWP_FS_OPS swap-space NeilBrown
2021-12-20 12:16 ` Mark Hemment
2021-12-21 8:40 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 01/18] Structural cleanup for filesystem-based swap NeilBrown
2021-12-17 10:33 ` kernel test robot
2021-12-21 8:34 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 06/18] MM: submit multipage reads for SWP_FS_OPS swap-space NeilBrown
2021-12-17 7:09 ` kernel test robot
2021-12-21 8:44 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 05/18] MM: reclaim mustn't enter FS " NeilBrown
2021-12-17 8:51 ` kernel test robot
2021-12-21 8:43 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 04/18] MM: perform async writes to " NeilBrown
2021-12-21 8:41 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 02/18] MM: create new mm/swap.h header file NeilBrown
2021-12-17 10:03 ` kernel test robot
2021-12-21 8:36 ` Christoph Hellwig
2021-12-16 23:48 ` [PATCH 17/18] NFSv4: keep state manager thread active if swap is enabled NeilBrown
2021-12-16 23:48 ` [PATCH 14/18] SUNRPC: remove scheduling boost for "SWAPPER" tasks NeilBrown
2021-12-16 23:48 ` [PATCH 16/18] SUNRPC: improve 'swap' handling: scheduling and PF_MEMALLOC NeilBrown
2021-12-16 23:48 ` [PATCH 07/18] MM: submit multipage write for SWP_FS_OPS swap-space NeilBrown
2021-12-20 12:21 ` Mark Hemment
2021-12-16 23:48 ` [PATCH 18/18] NFS: swap-out must always use STABLE writes NeilBrown
2021-12-16 23:48 ` [PATCH 12/18] SUNRPC/auth: async tasks mustn't block waiting for memory NeilBrown
2021-12-16 23:48 ` [PATCH 15/18] NFS: discard NFS_RPC_SWAPFLAGS and RPC_TASK_ROOTCREDS NeilBrown
2021-12-16 23:48 ` [PATCH 13/18] SUNRPC/xprt: async tasks mustn't block waiting for memory NeilBrown
2021-12-16 23:48 ` [PATCH 08/18] MM: Add AS_CAN_DIO mapping flag NeilBrown
2021-12-19 13:38 ` Mark Hemment
2021-12-19 20:59 ` NeilBrown [this message]
2021-12-21 8:46 ` Christoph Hellwig
2022-01-19 3:54 ` NeilBrown
2021-12-16 23:48 ` [PATCH 11/18] SUNRPC/call_alloc: async tasks mustn't block waiting for memory NeilBrown
2021-12-16 23:48 ` [PATCH 09/18] NFS: rename nfs_direct_IO and use as ->swap_rw NeilBrown
2021-12-16 23:48 ` [PATCH 10/18] NFS: swap IO handling is slightly different for O_DIRECT IO NeilBrown
2021-12-20 15:02 ` Mark Hemment
2021-12-17 21:29 ` [PATCH 00/18 V2] Repair SWAP-over-NFS Anna Schumaker
2021-12-19 21:07 ` NeilBrown
2021-12-21 8:48 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=163994759613.25899.17650220291128318661@noble.neil.brown.name \
--to=neilb@suse.de \
--cc=akpm@linux-foundation.org \
--cc=anna.schumaker@netapp.com \
--cc=chuck.lever@oracle.com \
--cc=dhowells@redhat.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=markhemm@googlemail.com \
--cc=mgorman@suse.de \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox