On 2025/5/7 10:42, Gao Xiang wrote:


On 2025/5/7 09:53, Hongbo Li wrote:


On 2025/5/6 23:10, Gao Xiang wrote:
Hi Hongbo,

On 2025/4/29 21:42, Hongbo Li wrote:
In erofs, the inode number has the location information of
files. The default encode_fh uses the ino32, this will lack
of some information when the file is too big. So we need
the internal helpers to encode filehandle.

EROFS uses NID to indicate the on-disk inode offset, which can
exceed 32 bits. However, the default encode_fh uses the ino32,
thus it doesn't work if the image is large than 128GiB.

Thanks for helping me correct my description.

Here, an image larger than 128GiB won't trigger NID reversal. It requires a 128GiB file inside, and the NID of the second file may exceed U32 during formatting. So here can we change it to "However, the default encode_fh uses the ino32, thus it may not work if there exist a file which is large than 128GiB." ?

Why? Currently EROFS doesn't arrange inode metadata
together, but close to its data (or its directory)
if possible for data locality.

So NIDs can exceed 32-bit for images larger than
128 GiB.


Ok, I see your point, and you are right. It doesn't have to be a 128GiB file, but it is easy to construct this kind of EROFS image by large file. Such as:

mkfs.erofs -d7 --tar=f --clean=data foo.erofs 128g-file.tar # the nid of 128g-file is 39. mkfs.erofs -d7 --tar=f --incremental=data 1b-file.tar # the nid of 1b-file is 4294967425.

Thank you again for your review, I will send the next version of the patch later.

Thanks,
Hongbo

Thanks,
Gao Xiang


Thanks,
Hongbo



Reply via email to