On 2025/5/13 19:27, Sheng Yong wrote:
On 5/13/25 15:17, Gao Xiang wrote:


On 2025/5/13 15:06, Hongbo Li wrote:


On 2025/4/8 20:23, Sheng Yong wrote:
From: Sheng Yong <shengyo...@xiaomi.com>

When attempting to use an archive file, such as APEX on android,
as a file-backed mount source, it fails because EROFS image within
the archive file does not start at offset 0. As a result, a loop
device is still needed to attach the image file at an appropriate
offset first. Similarly, if an EROFS image within a block device
does not start at offset 0, it cannot be mounted directly either.

To address this issue, this patch adds a new mount option `fsoffset=x'
to accept a start offset for both file-backed and bdev-based mounts.
The offset should be aligned to block size. EROFS will add this offset

Hi Yong,

Why the offset should be aligned to block size? I mean, we can use the original offset directly during read, and then add this offset after reading.

Currently metabuf and bio are all block-based I/Os (otherwise
taking metadata for example, it could cross page boundary), I

Hi, Hongbo and Xiang,

I agree that "we cannot handle cross page/block" is the main reason. And
for use case, e.g APEX file, to achieve a better performance and make it
easy to extract filesystem image from a APEX file, the fs image is used
to put at page/block-size-aligned position.


ok, it may be complex, such as reading extra data with an aligned position after plus fsoffset and redirecting the internal offset.

Should we consider adding the explanations in Documentation?

Thanks,
Hongbo

thanks,
shengyong

uess it's complex to support unaligned offsets.  Also it seems
lack of use cases?

Thanks,
Gao Xiang


Thanks,
Hongbo




Reply via email to