summaryrefslogtreecommitdiff
path: root/fs/erofs
diff options
context:
space:
mode:
authorXin Yin <yinxin.x@bytedance.com>2023-07-11 14:21:30 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-07-23 13:49:26 +0200
commit9e6474e5d70cdc69108e236cb96bc02afc01fcb9 (patch)
treea80c3fea3efa66e27146d1b4a656a33aeabdb16a /fs/erofs
parentdc8158a95fd720990fe6ef47cb1b9487e01b56e5 (diff)
downloadlinux-9e6474e5d70cdc69108e236cb96bc02afc01fcb9.tar.gz
linux-9e6474e5d70cdc69108e236cb96bc02afc01fcb9.tar.bz2
linux-9e6474e5d70cdc69108e236cb96bc02afc01fcb9.zip
erofs: fix fsdax unavailability for chunk-based regular files
[ Upstream commit 18bddc5b67038722cb88fcf51fbf41a0277092cb ] DAX can be used to share page cache between VMs, reducing guest memory overhead. And chunk based data format is widely used for VM and container image. So enable dax support for it, make erofs better used for VM scenarios. Fixes: c5aa903a59db ("erofs: support reading chunk-based uncompressed files") Signed-off-by: Xin Yin <yinxin.x@bytedance.com> Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com> Reviewed-by: Chao Yu <chao@kernel.org> Link: https://lore.kernel.org/r/20230711062130.7860-1-yinxin.x@bytedance.com Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs/erofs')
-rw-r--r--fs/erofs/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c
index 5aadc73d5765..e090bcd46db1 100644
--- a/fs/erofs/inode.c
+++ b/fs/erofs/inode.c
@@ -186,7 +186,8 @@ static void *erofs_read_inode(struct erofs_buf *buf,
inode->i_flags &= ~S_DAX;
if (test_opt(&sbi->opt, DAX_ALWAYS) && S_ISREG(inode->i_mode) &&
- vi->datalayout == EROFS_INODE_FLAT_PLAIN)
+ (vi->datalayout == EROFS_INODE_FLAT_PLAIN ||
+ vi->datalayout == EROFS_INODE_CHUNK_BASED))
inode->i_flags |= S_DAX;
if (!nblks)
/* measure inode.i_blocks as generic filesystems */