Skip site navigation (1)Skip section navigation (2)
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>