Re: [RFC PATCH V6 4/7] ovl: set 'DONTCACHE' flag for overlayfs inode

From: Jan Kara
Date: Fri Nov 26 2021 - 04:22:28 EST


On Mon 22-11-21 11:00:35, Chengguang Xu wrote:
> From: Chengguang Xu <charliecgxu@xxxxxxxxxxx>
>
> Set 'DONTCACHE' flag to overlayfs inode so that
> upper inode to be always synced before eviction.
>
> Signed-off-by: Chengguang Xu <charliecgxu@xxxxxxxxxxx>
> ---
> fs/overlayfs/inode.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
> index 027ffc0a2539..c4472299d5df 100644
> --- a/fs/overlayfs/inode.c
> +++ b/fs/overlayfs/inode.c
> @@ -791,6 +791,7 @@ void ovl_inode_init(struct inode *inode, struct ovl_inode_params *oip,
> ovl_copyattr(realinode, inode);
> ovl_copyflags(realinode, inode);
> ovl_map_ino(inode, ino, fsid);
> + d_mark_dontcache(inode);
> }

Doesn't this effectively disable dcache for overlayfs dentries? I mean e.g.
whenever overlayfs file is closed, we will drop its dentry & inode from the
cache. Upper and lower inodes / dentries stay in cache so no disk access
should be needed to reconstruct overlayfs dentry & inode but still it may
be a bit costly? I guess others more familiar with overlayfs have to judge.

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR