Date: Mon, 17 Feb 1997 01:28:23 +1100 From: Bruce Evans <bde@zeta.org.au> To: dyson@freebsd.org, jkh@time.cdrom.com Cc: bde@freebsd.org, current@freebsd.org Subject: Re: dump/traverse.c:118 build failure in -current Message-ID: <199702161428.BAA20700@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>/* Auxiliary macro to pick up files changed since previous dump. */ >#ifdef FS_44INODEFMT >#define CHANGEDSINCE(dp, t) \ > ((dp)->di_mtime.tv_sec >= (t) || (dp)->di_ctime.tv_sec >= (t)) >#else >#define CHANGEDSINCE(dp, t) \ > ((dp)->di_mtime >= (t) || (dp)->di_ctime >= (t)) >#endif > >FS_44INODEFMT is defined as 2 /usr/include/ufs/ffs/fs.h and seems >to be correct, but struct dinode now contains an int32_t for di_mtime, >not a struct timespec as in former times. The ifdef is wrong. Lite2 didn't change the inode format and doesn't have an ifdef here. >So the question simply is: Is the dinode structure wrong, with >FreeBSD changes to be brought back from revision 1.4 of dinode.h, >or does traverse.c simple need to collapse the above to: Lite2 changed the C representation of the dinode structure. FreeBSD only made administrivial changes. The macro is slightly wrong to avoid the di_xtimensec fields. ufs normally sets these fields to 0, but they can be set to multiples of 10000 using utimes(). >And be done with it. Where's the book on this stuff? :-) Lite2 *.c is quite readable :-). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702161428.BAA20700>