Re: [PATCH v3 2/2] erofs: add 'offset' mount option for file-backed & bdev-based mounts
From: Karel Zak
Date: Mon Apr 07 2025 - 07:40:47 EST
On Mon, Apr 07, 2025 at 07:05:51PM +0800, Sheng Yong wrote:
> From: Sheng Yong <shengyong1@xxxxxxxxxx>
>
> 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.
Karel
--
Karel Zak <kzak@xxxxxxxxxx>
http://karelzak.blogspot.com