Re: [PATCH v2] erofs: relax sanity check for tail pclusters due to ztailpacking
"zhaoyifan (H)" <[email protected]> Wed, 8 Jul 2026 14:31:16 +0800
| Newsgroups | org.ozlabs.lists.linux-erofs |
|---|---|
| Message-ID | <[email protected]> |
Tested-by: Yifan Zhao <[email protected]> On 2026/7/8 11:18, Gao Xiang wrote: > If the tail data can be inlined into the inode meta block, it should > be converted into a regular tail pcluster. > > In principle, it should be converted into an uncompressed pcluster if > there is not enough gain to use compression (map->m_llen < map->m_plen); > but since there are various shipped images, relax the condition for > ztailpacking tail pcluster fallback instead of reporting corruption > incorrectly. > > Reported-by: Yifan Zhao <[email protected]> > Reported-by: Alberto Salvia Novella <[email protected]> > Closes: https://github.com/erofs/erofs-utils/issues/51 > Fixes: a5242d37c83a ("erofs: error out obviously illegal extents in advance") > Signed-off-by: Gao Xiang <[email protected]> > --- > v2: > - Drop ztailpacking sb feature check since it might not be set for > single-file ztailpacking fallback images. > > fs/erofs/zmap.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c > index bab521613552..5811556a7b71 100644 > --- a/fs/erofs/zmap.c > +++ b/fs/erofs/zmap.c > @@ -732,7 +732,8 @@ static int z_erofs_map_sanity_check(struct inode *inode, > map->m_algorithmformat, EROFS_I(inode)->nid); > return -EFSCORRUPTED; > } > - if (EROFS_MAP_FULL(map->m_flags) && map->m_llen < map->m_plen) { > + if (EROFS_MAP_FULL(map->m_flags) && map->m_llen < map->m_plen && > + map->m_la + map->m_llen < inode->i_size) { > erofs_err(inode->i_sb, "too much compressed data @ la %llu of nid %llu", > map->m_la, EROFS_I(inode)->nid); > return -EFSCORRUPTED;