|
@@ -1599,6 +1599,7 @@ int z_erofs_map_blocks_iter(struct inode *inode,
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
|
|
if (ofs_rem >= logical_cluster_ofs)
|
|
if (ofs_rem >= logical_cluster_ofs)
|
|
map->m_flags ^= EROFS_MAP_ZIPPED;
|
|
map->m_flags ^= EROFS_MAP_ZIPPED;
|
|
|
|
+ /* fallthrough */
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
|
|
if (ofs_rem == logical_cluster_ofs) {
|
|
if (ofs_rem == logical_cluster_ofs) {
|
|
pcn = le32_to_cpu(di->di_u.blkaddr);
|
|
pcn = le32_to_cpu(di->di_u.blkaddr);
|
|
@@ -1619,11 +1620,13 @@ int z_erofs_map_blocks_iter(struct inode *inode,
|
|
goto unmap_out;
|
|
goto unmap_out;
|
|
}
|
|
}
|
|
end = (lcn-- * clustersize) | logical_cluster_ofs;
|
|
end = (lcn-- * clustersize) | logical_cluster_ofs;
|
|
|
|
+ /* fallthrough */
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD:
|
|
case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD:
|
|
/* get the correspoinding first chunk */
|
|
/* get the correspoinding first chunk */
|
|
ofs = vle_get_logical_extent_head(inode, mpage_ret,
|
|
ofs = vle_get_logical_extent_head(inode, mpage_ret,
|
|
&kaddr, lcn, &pcn, &map->m_flags);
|
|
&kaddr, lcn, &pcn, &map->m_flags);
|
|
mpage = *mpage_ret;
|
|
mpage = *mpage_ret;
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
errln("unknown cluster type %u at offset %llu of nid %llu",
|
|
errln("unknown cluster type %u at offset %llu of nid %llu",
|
|
cluster_type, ofs, EROFS_V(inode)->nid);
|
|
cluster_type, ofs, EROFS_V(inode)->nid);
|