[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4152e93b-3f7d-4861-aad9-b7dc1ef71470@huawei.com>
Date: Thu, 15 Jan 2026 09:36:02 +0800
From: Hongbo Li <lihongbo22@...wei.com>
To: Gao Xiang <hsiangkao@...ux.alibaba.com>
CC: <djwong@...nel.org>, <amir73il@...il.com>, <hch@....de>,
<linux-fsdevel@...r.kernel.org>, <linux-erofs@...ts.ozlabs.org>,
<linux-kernel@...r.kernel.org>, Chao Yu <chao@...nel.org>, Christian Brauner
<brauner@...nel.org>
Subject: Re: [PATCH v14 08/10] erofs: support unencoded inodes for page cache
share
Hi,Xiang
On 2026/1/14 22:51, Gao Xiang wrote:
>
>
> On 2026/1/9 18:28, Hongbo Li wrote:
>> This patch adds inode page cache sharing functionality for unencoded
>> files.
>>
>> I conducted experiments in the container environment. Below is the
...
>> iomap->inline_data = ptr;
>> @@ -383,11 +385,16 @@ static int erofs_read_folio(struct file *file,
>> struct folio *folio)
>> .ops = &iomap_bio_read_ops,
>> .cur_folio = folio,
>> };
>> - struct erofs_iomap_iter_ctx iter_ctx = {};
>> + bool need_iput;
>> + struct erofs_iomap_iter_ctx iter_ctx = {
>> + .realinode = erofs_real_inode(folio_inode(folio), &need_iput),
>> + };
>> - trace_erofs_read_folio(folio, true);
>> + trace_erofs_read_folio(iter_ctx.realinode, folio, true);
>> iomap_read_folio(&erofs_iomap_ops, &read_ctx, &iter_ctx);
>> + if (need_iput)
>> + iput(iter_ctx.realinode);
>> return 0;
>> }
>> @@ -397,12 +404,17 @@ static void erofs_readahead(struct
>> readahead_control *rac)
>> .ops = &iomap_bio_read_ops,
>> .rac = rac,
>> };
>> - struct erofs_iomap_iter_ctx iter_ctx = {};
>> + bool need_iput;
>> + struct erofs_iomap_iter_ctx iter_ctx = {
>> + .realinode = erofs_real_inode(rac->mapping->host, &need_iput),
>> + };
>> - trace_erofs_readahead(rac->mapping->host, readahead_index(rac),
>> + trace_erofs_readahead(iter_ctx.realinode, readahead_index(rac),
>> readahead_count(rac), true);
>
> Is it possible to add a commit to update the tracepoints
> to add the new realinode first?
Yeah, so should we put the update on trace_erofs_read_folio and
trace_erofs_readahead in a single patch after "[PATCH v14 03/10] fs:
Export alloc_empty_backing_file"?
Since the first two patches in this series has merged in vfs tree
(thanks Christian), should we reorder the left patches?
Thanks,
Hongbo
>
> Also please fix the indentation in that commit together.
>
>> iomap_readahead(&erofs_iomap_ops, &read_ctx, &iter_ctx);
>> + if (need_iput)
>> + iput(iter_ctx.realinode);
>> }
>> static sector_t erofs_bmap(struct address_space *mapping, sector_t
>> block)
>> @@ -423,7 +435,9 @@ static ssize_t erofs_file_read_iter(struct kiocb
...
>> }
>> const struct address_space_operations erofs_fileio_aops = {
>> diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c
>> index bce98c845a18..52179b706b5b 100644
>> --- a/fs/erofs/inode.c
>> +++ b/fs/erofs/inode.c
>> @@ -215,6 +215,8 @@ static int erofs_fill_inode(struct inode *inode)
>> case S_IFREG:
>> inode->i_op = &erofs_generic_iops;
>> inode->i_fop = &erofs_file_fops;
>> + if (erofs_ishare_fill_inode(inode))
>> + inode->i_fop = &erofs_ishare_fops;
>
> inode->i_fop = erofs_ishare_fill_inode(inode) ?
> &erofs_ishare_fops : &erofs_file_fops;
Ok, will update.
>
> Otherwise it looks good to me.
>
> Thanks,
> Gao Xiang
Powered by blists - more mailing lists