implemented for du.c revision 1.25 :
Use open address hashtable with multiplicative double hash probing
and exponential hashtable growth for tracking previously seen inodes.
This replaces the O(n^2) behavior of linkchk() with an implementation
that should be O(n*logn)
Move an error check to the right place, and instead of blindly insisting on
an argument for all of "no-emul-boot", "no-boot", "hard-disk-boot" and
"boot-load-segment", only require it for the last one, which is the only
one that requires/uses it.
OK'd by Christos
`node' on a tail-queue, when `node' wasn't on the tail-queue.
Sometimes this led to a segfault. Insert before `cn', since that
is the intention. Closes PR 32194. Thanks, Jeff Rizzo, for reporting
this bug.
regular files on the source filesystem to the offset of the first
data block on the target filesystem. Don't allocate blocks for a
file a second time (i.e., if it is already present in the hashtable).
Avoid writing the blocks of a file twice (use the FS_WRITTEN flag
in fsinode->flags for this purpose).
intended to be kept on the boot-images and -entries lists, keep
them in that order: images grouped and entries grouped by system,
with later images nearer the front of the list.
*Really* apply boot options to the last boot-image specified.
sectors in the Sector Count field of the Initial/Default Entry in
the "El Torito" Boot Catalog, instead of blithely writing 1 (!!)
into the Sector Count field. Ditto the Section Entries.
Remove last remnants of cd9660's unsupported boot-load-size option.
Really use cd9660's boot-load-segment argument.
Change the boot images list from a LIST to a TAILQ.
Re-implement CD9660_BLOCKS() with howmany().
Introduce ELTORITO_DPRINTF and some debug messages.
Zero memory malloc'd in the El Torito code.
Revise some debugging outputs.
Insert a new boot-image on the boot-images list after the last
boot-image for the same architecture. It makes a (trivial) functional
difference.
Miscellaneous cosmetic changes. Remove useless variable-assignment.
Functional: Do not add a missing period or a version number to
directories, since that doesn't fit the standard (thanks
Daniel Watt).
Add RRIP PX records (POSIX meta-information) to '.'
and '..' entries. Quiets kernel complaint, when we
mount a cd9660 filesystem, that there is a missing PX
entry.
Cosmetic: Reduce height of staircases. Remove an unused member
from struct _cd9660node. Extract a subroutine. KNF.
Use a TAILQ macros for lists of both SUSP/RRIP attributes
and directory entries.
XXX
XXX The new RRIP PX entries are not quite right.
XXX