[PATCH] erofs-utils: mkfs: Use extended inodes when ctime is set

Gao Xiang hsiangkao at linux.alibaba.com
Fri Mar 11 16:24:41 AEDT 2022


Hi David,

On Thu, Mar 10, 2022 at 07:53:07PM -0800, David Anderson via Linux-erofs wrote:
> On Mon, Feb 28, 2022 at 10:14 PM Gao Xiang <hsiangkao at linux.alibaba.com> wrote:
> >
> >
> > (Or maybe just "--preserve-mtime" if it's supposed to be used frequently in
> >  specific use cases...)
> 
> Looking at this again - is a new flag needed?
> 
> If -T is specified, the build will be reproducible. All timestamps
> will be equal, and we'll never force an extended inode due to
> mismatching timestamps. The patch has no effect in this case.
> 
> If -T is *not* specified, inode mtime *could* be reproducible
> (depending on how the user creates the files), but sbi.build_time
> isn't. Any of these inodes that gets the compact layout will use the
> unreproducible build time instead. So, switching to extended inodes
> here strictly improves reproducibility and determinism.

Yeah, I know what's your main point here. Ok, that's fine we
could change the current behavior. Yet I still think the current
behavior may benefit some use cases (e.g. metadata size is sensible,
we need to avoid extended inodes no matter per-filetimestamp is)..

So instead, how about introducing --ignore-mtime instead for the
current behavior, and change the default behavior into using extended
inodes?

> 
> That said, it is a change in behavior, so maybe that warrants a flag anyway.
> 
> For what it's worth, in AOSP, "-T" is specified for production builds.
> Non-production builds have "mtime" preserved for pushing incremental
> changes.

Thanks for the information!

Thanks,
Gao Xiang

> 
> Best,
> 
> -David


More information about the Linux-erofs mailing list