Hi David, On Tue, Mar 01, 2022 at 04:11:39AM +0000, David Anderson via Linux-erofs wrote: > Currently mkfs.erofs picks up whatever the system time happened to be > when the input file structure was created. Since there's no (easy) way for > userspace to control ctime, there's no way to control the per-file ctime > that mkfs.erofs uses. > > Switching to mtime allows this tuning, which is important when the > timestamp of files is used to detect staleness.
Yeah, I agree I should think more when I planned to store `ctime' at the first time [my original thought was to keep metadata time (including uid, gid, etc..), so I selected `ctime' instead of `mtime']. Should we change what's described in 'Documentation/filesystems/erofs.rst' and even rename i_ctime to i_mtime? Also should we introduce a new compat feature to indicate that new mkfs records mtime instead? Thanks, Gao Xiang > > Change-Id: I9cab662398bedc43d6d68ae798912f33360814e3 > Signed-off-by: David Anderson <[email protected]> > --- > lib/inode.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/lib/inode.c b/lib/inode.c > index 461c797..f0a71a8 100644 > --- a/lib/inode.c > +++ b/lib/inode.c > @@ -806,12 +806,12 @@ static int erofs_fill_inode(struct erofs_inode *inode, > inode->i_mode = st->st_mode; > inode->i_uid = cfg.c_uid == -1 ? st->st_uid : cfg.c_uid; > inode->i_gid = cfg.c_gid == -1 ? st->st_gid : cfg.c_gid; > - inode->i_ctime = st->st_ctime; > - inode->i_ctime_nsec = ST_CTIM_NSEC(st); > + inode->i_ctime = st->st_mtime; > + inode->i_ctime_nsec = ST_MTIM_NSEC(st); > > switch (cfg.c_timeinherit) { > case TIMESTAMP_CLAMPING: > - if (st->st_ctime < sbi.build_time) > + if (st->st_mtime < sbi.build_time) > break; > case TIMESTAMP_FIXED: > inode->i_ctime = sbi.build_time; > -- > 2.35.1.574.g5d30c73bfb-goog
