From 91e3442099b32a88a431ae1a6baa5e251cfa3933 Mon Sep 17 00:00:00 2001 From: arichardson Date: Fri, 15 Nov 2019 18:34:30 +0000 Subject: [PATCH] makefs: Also set UFS di_birthtime when building on Linux Since st_birthtime doesn't exists on Linux (unless you use statx(2)), we instead populate it with the st_ctime value. Reviewed By: emaste Differential Revision: https://reviews.freebsd.org/D22386 --- usr.sbin/makefs/ffs.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/usr.sbin/makefs/ffs.c b/usr.sbin/makefs/ffs.c index 99b5ba06159..4dfb37889b5 100644 --- a/usr.sbin/makefs/ffs.c +++ b/usr.sbin/makefs/ffs.c @@ -728,15 +728,22 @@ ffs_build_dinode2(struct ufs2_dinode *dinp, dirbuf_t *dbufp, fsnode *cur, dinp->di_atime = st->st_atime; dinp->di_mtime = st->st_mtime; dinp->di_ctime = st->st_ctime; +#if HAVE_STRUCT_STAT_BIRTHTIME + dinp->di_birthtime = st->st_birthtime; +#else + dinp->di_birthtime = st->st_ctime; +#endif #if HAVE_STRUCT_STAT_ST_MTIMENSEC dinp->di_atimensec = st->st_atimensec; dinp->di_mtimensec = st->st_mtimensec; dinp->di_ctimensec = st->st_ctimensec; -#endif #if HAVE_STRUCT_STAT_BIRTHTIME - dinp->di_birthtime = st->st_birthtime; dinp->di_birthnsec = st->st_birthtimensec; +#else + dinp->di_birthnsec = st->st_ctimensec; +#endif #endif + /* not set: di_db, di_ib, di_blocks, di_spare */ membuf = NULL; -- 2.45.0