Hi Karel,

On 2025/4/7 19:40, Karel Zak wrote:
On Mon, Apr 07, 2025 at 07:05:51PM +0800, 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.

Does it work with mount(8)? The mount option offset= has been defined
for decades as userspace-only and is used for loop devices. If I
remember correctly, libmount does not send the option to the kernel at
all. The option also triggers loop device usage by mount(8).

In recent years, we use the "X-" prefix for userspace options.
Unfortunately, loop=, offset=, and sizelimit= are older than any
currently used convention (I see the option in mount code from year
1998).

We can improve it in libmount and add any if-erofs hack there, but my
suggestion is to select a better name for the mount option. For
example, erofsoff=, erostart=, fsoffset=, start=, or similar.

Thanks for your suggestion!

it's somewhat weird to use erofsprefix here, I think fsoffset
may be fine.

Thanks,
Gao Xiang


     Karel




Reply via email to