Re: [PATCH V9 09/11] fs: Introduce DCACHE_DONTCACHE
From: Ira Weiny
Date: Tue Apr 21 2020 - 17:15:59 EST
On Tue, Apr 21, 2020 at 01:25:19PM -0700, Darrick J. Wong wrote:
> On Tue, Apr 21, 2020 at 12:17:51PM -0700, ira.weiny@xxxxxxxxx wrote:
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> >
> > DCACHE_DONTCACHE indicates a dentry should not be cached on final
> > dput().
> >
> > Also add a helper function to mark DCACHE_DONTCACHE on all dentries
> > pointing to a specific inode when that inode is being set I_DONTCACHE.
> >
> > This facilitates dropping dentry references to inodes sooner which
> > require eviction to swap S_DAX mode.
> >
> > Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
> >
> > ---
[snip]
> > diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c
> > index de76f7f60695..3c8f44477804 100644
> > --- a/fs/xfs/xfs_icache.c
> > +++ b/fs/xfs/xfs_icache.c
> > @@ -559,7 +559,7 @@ xfs_iget_cache_miss(
> > */
> > iflags = XFS_INEW;
> > if (flags & XFS_IGET_DONTCACHE)
> > - VFS_I(ip)->i_state |= I_DONTCACHE;
> > + mark_inode_dontcache(VFS_I(ip));
> > ip->i_udquot = NULL;
> > ip->i_gdquot = NULL;
> > ip->i_pdquot = NULL;
> > diff --git a/include/linux/dcache.h b/include/linux/dcache.h
> > index c1488cc84fd9..56b1482d9223 100644
> > --- a/include/linux/dcache.h
> > +++ b/include/linux/dcache.h
> > @@ -177,6 +177,8 @@ struct dentry_operations {
> >
> > #define DCACHE_REFERENCED 0x00000040 /* Recently used, don't discard. */
> >
> > +#define DCACHE_DONTCACHE 0x00000080 /* don't cache on final dput() */
>
> "Purge from memory on final dput()"?
Sounds good to me,
Ira
>
> --D
>