mirror of
https://git.code.sf.net/p/ntfs-3g/ntfs-3g.git
synced 2024-12-11 10:54:53 +08:00
61ea0f59d8
(Logical change 1.365)
570 lines
29 KiB
Plaintext
570 lines
29 KiB
Plaintext
xx/xx/2004 - 1.9.2-WIP
|
||
- Hopefully fix the autogen.sh problems using the --force and touch
|
||
config.h.in sledge hammers.
|
||
- Fix the incorrect ntfsclone usage example in the man page. (Szaka)
|
||
- Fix compiler warnings in win32_io.c. (Yuval)
|
||
- Move constant bswap macros out of the ifdefs in endians.h so they are
|
||
always available. (Yuval)
|
||
- Add conditional include of sys/param.h in endians.h which provides
|
||
endianness support on Cygwin. (Yuval)
|
||
- ntfsclone --metadata also saves at least the first 8 KiB of the
|
||
$LogFile (Szaka)
|
||
|
||
05/04/2004 - 1.9.1 - Make mkntfs create bootable volumes and fixes/updates.
|
||
- Update with SuSE 9.1 beta 1 versions of GNU build system.
|
||
- Fix warnings on powerpc architecture where it would seem char is
|
||
unsigned so comparisons with -1 cause a warning that comparison is
|
||
always true/wrong. (Thanks to Ender for reporting.)
|
||
- Modify meaning of ntfs_volume->nr_mft_records to be the number of
|
||
initialized mft records, not total mft records. This makes far more
|
||
sense and in fact reflects how nr_mft_records is being used in both
|
||
libntfs and the utilities.
|
||
- Add new API bitmap.h::ntfs_bitmap_{set,clear}_bit().
|
||
- Fix layout.h STANDARD_INFORMATION and FILE_ATTR_FLAGS typedefs by
|
||
adding the packed attribute where it was missing causing havoc due
|
||
to 64 bit alignment. (Yuval Fledel)
|
||
- Fix validation of STANDARD_INFORMATION attribute size in ntfsinfo.c
|
||
and remove relevant FIXME comments. (Yuval Fledel)
|
||
- Add new API security.[hc]::ntfs_guid_is_zero() and ntfs_guid_to_mbs().
|
||
- Implement dumping of object id in ntfsinfo. (Yuval Fledel, me)
|
||
- Copy MFT_RECORD typedef to MFT_RECORD_OLD and modify MFT_RECORD to
|
||
contain the NTFS 3.1+ specific fields. Also, update mkntfs and
|
||
ntfsclone appropriately.
|
||
- Add new API mft.[hc]::ntfs_mft_record_{layout,format}() and make
|
||
mkntfs use it.
|
||
- Add new API device.[hc]::ntfs_device_partition_start_sector_get() and
|
||
make mkntfs use it.
|
||
- Provide a new command line option "-p" to mkntfs to allow the user to
|
||
specify the partition start sector manually.
|
||
- Fix mkntfs and ntfsclone to include sys/ioctl.h.
|
||
- Define the ioctls we use in ntfsclone if they are not defined, as it
|
||
is done in device.c.
|
||
- Do not specify maintainer mode or enable compiler warnings in
|
||
autogen.sh.
|
||
- Create new config option --enable-warnings and make that enable all
|
||
the compiler warnings (this used to be done in maintainer mode).
|
||
- Remove AM_MAINTAINER_MODE from configure.ac.
|
||
- Support the case where $Volume does not have a $VOLUME_NAME
|
||
attribute in ntfs_device_mount() and let ntfslabel create the
|
||
attribute when it is not present.
|
||
- Remove the FIXME in ntfs_attr_lookup() and complete the
|
||
implementation of ntfs_external_attr_find() so it now returns the
|
||
attribute list attribute position at which the attribute should be
|
||
inserted in @ctx->al_entry (see descritpion for ntfs_attr_lookup() in
|
||
attrib.c for details).
|
||
- Check the mount state of the output device in ntfsclone.
|
||
- Correct a too strong sanity check in ntfsclone that prevented
|
||
cloning from larger device to a smaller one but the NTFS image
|
||
could have fit fully.
|
||
- Added a few (hopefully) better explanatory messages to ntfsresize.
|
||
- Add new API device.[hc]::ntfs_device_heads_get() and make mkntfs use
|
||
it.
|
||
- Provide a new command line option "-H" to mkntfs to allow the user to
|
||
specify the number of heads manually.
|
||
- Add new API device.[hc]::ntfs_device_sectors_per_track_get() and make
|
||
mkntfs use it.
|
||
- Provide a new command line option "-S" to mkntfs to allow the user to
|
||
specify the number of sectors per track manually.
|
||
- Remove dumplog utility as it was unnecessary and duplicated the
|
||
functionality of ntfsdump_logfile.
|
||
- Cleanup ntfsdump_logfile utility to use more libntfs APIs and other
|
||
cleanups.
|
||
- Remove some compiler warnings that appeared with the latest gcc
|
||
update from SUSE 9.1 beta 3.
|
||
- Sanitize/update logfile.h somewhat and adapt ntfsdump_logfile.
|
||
- Move declaration of a variable in utils.c to beginning of block.
|
||
Thanks to Alexei Alexandrov for the bug report and patch.
|
||
- Add the ability to read the logfile from a supplied file using the
|
||
command line option -f to ntfsdump_logfile.
|
||
- Updated ntfsclone manual. (Szaka)
|
||
- Added some diagnostic and explanatory messages to ntfsclone. (Szaka)
|
||
- Mostly rewrite ntfsinfo. (Yuval Fledel and some fixes by me)
|
||
|
||
11/03/2004 - 1.9.0 - Added ntfsresize relocation support and a lot of cleanups.
|
||
- In include/ntfs/*.h Wrap all #include "config.h" by #ifdef
|
||
HAVE_CONFIG_H. (Suggested by Christophe.)
|
||
- Update doc/CodingStyle. (Suggested by Szaka.)
|
||
- Fix mkntfs for large volumes where the number of clusters would
|
||
exceed the maximum of 32 bits and mkntfs would segfault. Now we
|
||
increase the cluster size until the number of clusters no longer
|
||
exceeds 32 bits or the maximum cluster size is reached. We then
|
||
exit with an appropriate error message. (Thanks to Szaka for the
|
||
bug report.)
|
||
- Modify layout.h and logfile.h expanding/naming annonymous structs
|
||
and unions (much like I did earlier in the kernel driver) so that
|
||
the -fms-extensions switch is no longer required. Also, removed
|
||
the -fms-extensions switch and associated autodetection from
|
||
./configure.ac. (Yuval Fledel with small fixes from me)
|
||
- Update the build system: autogen.sh now uses autoreconf; run
|
||
autoupdate && autoreconf --force and fixup the fallout damage; rename
|
||
INCLUDES to AM_CPPFLAGS; add $srcdir to getgccver invocation.
|
||
- Rename private to priv_data in ntfs_device_alloc() to avoid name
|
||
space clashes with C++. (Yuval Fledel, modified fix by me)
|
||
- Rename 'opt' struct member stdout to std_out in ntfsclone.c because
|
||
stdout is a macro on Cygwin and compilation fails. (Yuval Fledel)
|
||
- Make ntfs_attrs_walk() use AT_UNUSED and CASE_SENSITIVE instead of
|
||
zero when calling ntfs_lookup() for type checking correctness. (Yuval
|
||
Fledel)
|
||
- In attribute lookup code in libntfs/attrib.c, check type against
|
||
AT_UNUSED and not zero.
|
||
- Add AC_CANONICAL_HOST([]) to configure.ac and before AC_PROG_CC add
|
||
manual provision of CC=gcc, AR=ar, and LD=ld if they are not set and
|
||
the target is *-*-*djgpp. (Requested by Christophe Grenier)
|
||
- Provide our own byteswap constant versions in endians.h so we avoid
|
||
the mess that some architectures define only some of them.
|
||
- Use head -n 1 instead of -1 in getgccver script. (From SUSE LINUX)
|
||
- Fix typo in ntfsinfo.c. (From SUSE LINUX)
|
||
- Make the device fd in unix_io.c be stored in malloc()ed space pointed
|
||
to by the d_private pointer instead of inside the d_private pointer
|
||
itself. Makes the warnings on 64 bit architectures go away.
|
||
- Fix all occurences of printf with %ll length modifiers but 64 bit
|
||
arguments to typecast the arguments to (unsigned) long long to avoid
|
||
the warnings when compiling on 64 bit architectures.
|
||
- Use AC_GNU_SOURCE in configure.ac instead of doing it manually.
|
||
- Fix lots of typos in the documentation. (David Mart<72>nez Moreno)
|
||
- Update config.sub and config.guess to latest ones. (David Mart<72>nez
|
||
Moreno)
|
||
- Change Linux-NTFS to ntfsprogs everywhere when talking about the
|
||
package rather than the project (especially man pages affected).
|
||
- Add relocation support to ntfsresize. Note, this modifies the
|
||
command line options a little as well as the returned output so
|
||
applications using ntfsresize might need modifications before they
|
||
will work with the updated ntfsresize. (Szaka)
|
||
|
||
27/02/2004 - 1.8.5 - Springclean of the build process, cleanups, bug fixes.
|
||
- Fixup ntfsinfo a little bit and give its manpage a small update to
|
||
reflect reality a little better.
|
||
- Fix BLKGETSIZE usage; parameter is unsigned long not long. (Szaka)
|
||
- Use BLKGETSIZE64 when available which allows use of devices bigger
|
||
than 2TiB.
|
||
- Enable GNU extensions if present. This means that you need to
|
||
include config.h before any other non-ntfs header files.
|
||
- Use AC_SYS_LARGEFILE in configure.ac instead of manually defining
|
||
_FILE_OFFSET_BITS=64 in CFLAGS. This means that you need to include
|
||
config.h before any other non-ntfs header files.
|
||
- Update all source to include config.h before any other non-ntfs
|
||
header files.
|
||
- Move include files from ntfsprogs/include to ntfsprogs/include/ntfs
|
||
and adapt build system. (Feature requested by Christophe Grenier.)
|
||
- Fix potential buffer overflow bug in ntfsprogs/mkntfs.c::stoucs().
|
||
Thanks to Andras Erdei.
|
||
- Small cleanup of ./configure.ac to show better formatted option help
|
||
text and other little bits.
|
||
- Add --disable-default-device-io-ops option to ./configure which makes
|
||
for a smaller libntfs but results in ntfs_mount() always returning
|
||
error with errno set to ENOTSUP. You need to use ntfs_device_mount()
|
||
instead. This only makes sense with "make libs" and when an
|
||
application linking statically against libntfs provides its own
|
||
device io operations. (Feature requested by Christophe Grenier.)
|
||
- Fix a duplicated free() in mkntfs. (Andras Erdei)
|
||
- Fix option display in mkntfs. (Andras Erdei)
|
||
|
||
23/01/2004 - 1.8.4 - Memory leak fixes.
|
||
- Fix memory leaks in libntfs/dir.c::ntfs_inode_lookup_by_name(),
|
||
libntfs/dir.c::ntfs_readdir() and libntfs/attrib.c::ntfs_attr_open().
|
||
Thanks to Christophe Grenier and valgrind for finding them.
|
||
|
||
19/01/2004 - 1.8.3 - Lots of small fixes.
|
||
- Update ntfsinfo (Matthew J. Fanto, me)
|
||
- Add new API attrib.[hc]:ntfs_compressed_attr_pread(). NOTE: You want
|
||
to use ntfs_attr_pread() instead which will transparently read the
|
||
compressed attribute and return the decompressed data.
|
||
- Improve mkntfs linux/major.h use so should work on newer glibc.
|
||
- Fix silly bug in ntfs_attr_size_bounds_check() where unbounded
|
||
attributes were handled completely wrong. (Thanks to Szaka for
|
||
spotting this.)
|
||
- Fix wrong print modified %L intead of %ll everywhere. (Szaka, me)
|
||
- More Cygwin fixes. (Lode Leroy)
|
||
- Switch build files to ones generated by current SuSE 9.0 (i.e. I ran
|
||
./autogen.sh on SuSE 9.0 as I will be using SuSE as my desktop from
|
||
now on).
|
||
|
||
07/01/2004 - 1.8.2 - Make ntfsprogs work on FreeBSD.
|
||
- Add compatibility for building on FreeBSD. (Christophe Grenier)
|
||
- Add new compile target "make libs" which only compiles libntfs.
|
||
- Compile fixes for DJGPP. (Chrisophe Grenier, me)
|
||
- Note: DJGPP only works with "make libs". not "make" due to absence
|
||
of getopt.h, getopt_long(), snprintf(), and snprintf(). getopt() does
|
||
exist (in unistd.h) so we could switch to that if we wanted.
|
||
- Enable lots of compiler warnings in maintainer mode and fix all
|
||
warnings from libntfs.
|
||
- Fix memory deallocation bug in mft.c spotted by the additional
|
||
warnings.
|
||
|
||
06/01/2004 - 1.8.1 - Important bug fix and various enhancements.
|
||
- Add new API function attrib.[hc]:ntfs_attr_map_whole_runlist().
|
||
- Add new API function runlist.[hc]:ntfs_rl_pread().
|
||
- Fix bug in run list encoding functions that hit sparse and compressed
|
||
files with holes. (Szabolcs Szakacsits)
|
||
- Add compatibility for building with DJGPP under DOS. (Christophe
|
||
Grenier, slightly modified by me)
|
||
|
||
19/11/2003 - 1.8.0 - Final fixes and tidy ups.
|
||
- Cleanup build system wrt CFLAGS handling placing it all in one place
|
||
in configure.ac and removing everything related from the Makefile.am
|
||
files.
|
||
- Fix all compiler warnings (Richard Russon, me)
|
||
- Make libntfs more portable by removing the dependency on
|
||
asm/byteorder.h and using <endian.h> and <byteswap.h> instead. Also
|
||
adapting our endians.h appropriately. (Richard Russon)
|
||
- Fix nasty buffer overflow bug in ntfs_get_attribute_value() which we
|
||
use to get the attribute list attribute. This is the same bug that
|
||
was biting us in the ntfs driver 2.1.4 and was fixed in 2.1.5.
|
||
Windows XP creates files where an attribute's data size is more than
|
||
one run list run shorter than the allocated size which causes us to
|
||
crash out as we assumed this would never happen.
|
||
- Various other small cleanups and fixes.
|
||
|
||
10/11/2003 - 1.8.0beta2 - More features!
|
||
- Merge ntfsprogs-gnomevfs written by Jan Kratochvil.
|
||
|
||
23/10/2003 - 1.8.0beta - The Long Overdue(TM) release.
|
||
- Further work on attribute resizing.
|
||
- Fix two logic inversion bugs in dir.c. Thanks to Russ Christensen for
|
||
finding the first one.
|
||
- Fix attempt to release I30 internal constant. (Russ Christensen)
|
||
- Fix off-by-one error in disk_io.c::ntfs_cluster_{read,write}(). (Ian
|
||
Jackson)
|
||
- Add -fms-extensions when compiling with gcc-3.2+.
|
||
- Update for newer autoconf/automake.
|
||
- Abstract low level device operations (include/device,h and
|
||
libntfs/device.c) and adapt utilities to changes.
|
||
- Added ntfsclone utility written by Szabolcs Szakacsits.
|
||
- Added ntfsls utility written by Lode Leroy.
|
||
- Fix bugs in dir.c::ntfs_readdir() where we try to close ia_na when
|
||
it is NULL.
|
||
- Return errno ENOTDIR from dir.c::ntfs_readdir() when called with a
|
||
file inode.
|
||
- Fix a silly bug in attrib.c::ntfs_external_attr_find() which caused
|
||
us to always return the same attribute during an enumeration as soon
|
||
as the end of the attributes to be enumerated was reached thus
|
||
causing the program doing the enumeration to hang in a tight loop.
|
||
NOTE: There is still work to do as ctx->al_entry is set to NULL
|
||
instead of to the position in the attribute list at which to insert.
|
||
- Added man pages for the new utilities (Richard Russon and me).
|
||
- Lots of extensions and cleanups to ntfsls.
|
||
- Move common bits from disk_io.c into device.c and rename the Unix io
|
||
specific code that remains to unix_io.c to complement win32_io.c.
|
||
- Integrate win32_io.c into the build process so win32_io ops are used
|
||
when compiling under Cygwin and standard Unix style io ops are used
|
||
otherwise.
|
||
- Add new utility ntfscat (Richard Russon) and a corresponding man page.
|
||
- Other assorted bugfixes and developments (see NEWS and bk changes).
|
||
|
||
13/02/2003 - 1.7.1 - Urgent bug fixes.
|
||
- Urgent bug fixes in ntfsresize (Szabolcs Szakacsits):
|
||
- compare_bitmaps(): fix another bug reporting the correct cluster
|
||
mismatch
|
||
- walk_inodes(): fix leaking ntfs_inode in certain cases
|
||
- delete redundant and unused MFT_RECORD *mrec from ntfs_resize_t
|
||
- Urgent bug fixes in libntfs (thanks to Szaka for bug reports):
|
||
- attrib.c::ntfs_external_attr_find(): broken error detection
|
||
- mft.c::ntfs_mft_records_write(): stupid buffer overflow bug (ouch!)
|
||
|
||
12/02/2003 - 1.7.0 - Small bug fixes and updates.
|
||
- Bug fixes in mapping pairs array generation in libntfs.
|
||
- Bug fixes and updates in ntfsresize. (Szabolcs Szakacsits)
|
||
- Tidyups and standardisations. (Richard Russon)
|
||
|
||
18/01/2003 - 1.7.0beta - Library rewrite and many new tools.
|
||
- Highlights of this release are the now hopefully stable API sported
|
||
by an almost completely rewritten library and the new utilities;
|
||
ntfsresize, ntfsundelete, and ntfslabel.
|
||
Note this is a beta release so it may not be free of bugs.
|
||
- New tool ntfslabel written by Matthew Fanto with a few cleanups from
|
||
me to make it fit in with e2label better.
|
||
- Add man page for ntfslabel.
|
||
- New tool, ntfsundelete, written by Richard Russon.
|
||
- New tool, ntfsresize, written by Szakacsits Szabolcs.
|
||
- Extend ntfs_mount() to also read in the volume label.
|
||
- Silence verbosity of output from ntfs_mount(). It is now only output
|
||
if ./configure was run with --enable-debug.
|
||
- Remove a LOT of dead code. Massive cleanup.
|
||
- Add full attribute search context and allocation/init/deallocation
|
||
functions (see attrib.c).
|
||
- Remove find_first_attr(). Just use ntfs_attr_get_search_ctx() +
|
||
ntfs_attr_find() which has the same effect.
|
||
- Rewrite disk_io.[ch] and mft.[ch] defining new access API:
|
||
disk_io.[ch] provide: ntfs_p{read,write}(),
|
||
ntfs_mst_p{read,write}(), and
|
||
ntfs_cluster_{read,write}().
|
||
mft.[ch] provide: ntfs_mft_record_{read,write}(),
|
||
ntfs_mft_records_{read,write}(), and
|
||
ntfs_mft_record_get_data_size().
|
||
- When writing mft records using the mft.c::ntfs_mft_record{s,}_write()
|
||
interface, the mft mirror is now updated automatically.
|
||
- Add -Wall to compiler options.
|
||
- Fix minor error code path bugs in mkntfs.c that showed up with -Wall.
|
||
- Fix all compiler warnings that showed up with -Wall.
|
||
- Add new API function, provided by mft.[ch]: ntfs_file_record_read().
|
||
- Add new API calls provided by unistr.[ch]:
|
||
ntfs_ucstombs() and ntfs_mbstoucs().
|
||
- Define API for mst.[ch] providing:
|
||
ntfs_mst_post_read_fixup(),
|
||
ntfs_mst_pre_write_fixup(), and
|
||
ntfs_mst_post_write_fixup().
|
||
- Define API for bootsect.[ch] providing:
|
||
ntfs_boot_sector_is_ntfs().
|
||
- Add beginning of new API with new files inode.[ch] providing:
|
||
ntfs_inode_{open,close)(), and
|
||
ntfs_extent_inode_open().
|
||
- Note the inode related API is subject to change.
|
||
- Start defining API provided by attrib.[ch]:
|
||
ntfs_attr_search_ctx typedef,
|
||
ntfs_attr_{get,put,reinit}_search_ctx(), and
|
||
ntfs_attr_lookup().
|
||
- Add a TODO.libntfs laying down my personal roadmap for the library.
|
||
- Remove ntfs_attr_find() from API, everyone must use ntfs_attr_lookup()
|
||
instead.
|
||
- Rename all attribute name constants from $blah to AT_blah.
|
||
- Rename all system file constants from FILE_$blah to FILE_blah.
|
||
- Port ntfs_attr_lookup() stuff from ntfs tng driver.
|
||
- Implement loading of extent inodes. They are attached on open to the
|
||
base inode and are cached there until the base inode is closed.
|
||
- Cleanup/streamline include file dependencies.
|
||
- Port attribute list merging code from ntfs tng driver. API to follow.
|
||
- Allocate a ntfs_volume in mkntfs and start initializing it instead
|
||
of using the opt global structure. Necessary so can call the
|
||
modified ntfs_mapping_pairs_decompress() from mkntfs.c.
|
||
- Add libntfs/debug.c providing:
|
||
ntfs_debug_runlist_dump().
|
||
- Add new API call ntfs_check_if_mounted() to volume.[ch]. (Matthew
|
||
Fanto, me)
|
||
- Do folding assisting cleanups. (Richard Russon, me)
|
||
- Add new API call ntfs_boot_sector_is_ntfs() provided by bootsect.[hc].
|
||
- Define and write more API calls provided by attrib.[ch]:
|
||
ntfs_attr_map_runlist(),
|
||
ntfs_attr_vcn_to_lcn(),
|
||
ntfs_attr_find_vcn(),
|
||
ntfs_attr_init(),
|
||
ntfs_attr_{open,close}(),
|
||
ntfs_attr_size_bounds_check(),
|
||
ntfs_attr_can_be_non_resident().
|
||
- Add new field mftmirr_size to ntfs_volume structure and initialize
|
||
it to the number of mft records stored in the mft mirror in
|
||
ntfs_mount().
|
||
- Add new fields mftmirr_ni and mftmirr_na to ntfs_volume structure and
|
||
initialize them in ntfs_mount to the $MFTMirr inode and $DATA
|
||
attribute. Ditto for mft_ni ($MFT inode), mft_na ($MFT/$DATA),
|
||
mftbmp_na ($MFT/$BITMAP), lcnbmp_ni ($Bitmap inode), and
|
||
lcnbmp_na ($Bitmap/$DATA). Remove previous fields replaced by these.
|
||
- Rename a few fields in ntfs_volume structure to make them shorter,
|
||
e.g. now have nr_mft_records and nr_clusters.
|
||
- Add new API for doing I/O on both normal and multi sector transfer
|
||
protected ntfs attributes described by the ntfs_attr structure,
|
||
provided by attrib.[hc] (note writing is still restricted to
|
||
overwrite only):
|
||
ntfs_attr_p{read,write}(), and
|
||
ntfs_attr_mst_p{read,write}().
|
||
- Fix detection of read-only mounts in volume.c::ntfs_mntent_check().
|
||
- Start modularising ntfs_mount():
|
||
- Split off the boot sector parsing code and move it to
|
||
bootsect.c::ntfs_boot_sector_parse().
|
||
- Move $MFT loading and parsing code to separate function
|
||
volume.c::ntfs_mft_load().
|
||
- Move $MFTMirr loading and parsing code to
|
||
volume.c::ntfs_mftmirr_load().
|
||
- Move all startup code (loading and parsing of bootsector,
|
||
$MFT, and $MFTMirr) to volume.c::ntfs_volume_startup().
|
||
- Update ntfsfix to above modularisation.
|
||
- Add detection of read-write mounted devices to ntfsfix and refuse to
|
||
operate on them.
|
||
- POSIXify libntfs/disk_io.c. All functions now return partial reads
|
||
and writes and deal with end of file properly. Affected functions:
|
||
ntfs_p{read,write}(),
|
||
ntfs_mst_p{read,write}(), and
|
||
ntfs_cluster_{read,write}().
|
||
- Change ntfsfix to take into account the automatic mft mirror updates.
|
||
- Add new API provided by new files dir.[ch]:
|
||
ntfs_inode_lookup_by_name(), and
|
||
ntfs_readdir().
|
||
- We now use u8, u16, u32, u64, s8, s16, s32, and s64 types and we
|
||
typedef them ourselves from the C99 standard uint8_t, etc types which
|
||
IMO are braindamaged.
|
||
- Better gcc detection in 'configure.in'. (Szakacsits Szabolcs)
|
||
Tested with: egcs-1.0.3 (egcs-2.90.29), egcs-1.1.2 (egcs-2.91.66),
|
||
gcc 2.95.3, 2.96 (from RH 7.1 and 7.3), and 3.0.4.
|
||
- Enable enumeration of attributes using ntfs_attr_lookup() which is
|
||
requested by passing a type of AT_UNUSED (or simply zero) to
|
||
ntfs_attr_lookup(). (Based on initial patch by Szakacsits Szabolcs.)
|
||
- Fix two minor buglets in ntfs_external_attr_find() where we would
|
||
continue the search when we detect a mismatched type and/or name
|
||
instead of aborting and returning error EIO to flag the corruption.
|
||
- Add new syntactic sugar API provided by attrib.h:
|
||
ntfs_attrs_walk(). (Szakacsits Szabolcs)
|
||
- Add new API for compressing runlists into mapping pairs arrays
|
||
provided by runlist.[hc] (some adapted from mkntfs.c):
|
||
ntfs_rl_vcn_to_lcn(),
|
||
ntfs_rl_pwrite(),
|
||
ntfs_runlists_merge(),
|
||
ntfs_mapping_pairs_decompress(),
|
||
ntfs_get_nr_significant_bytes(),
|
||
ntfs_get_size_for_mapping_pairs(),
|
||
ntfs_write_significant_bytes(),
|
||
ntfs_mapping_pairs_build(), and
|
||
ntfs_rl_truncate(). -- WIP
|
||
- Convert mkntfs.c to the above API.
|
||
- Implement attrib.[hc]::ntfs_rl_pwrite() as a low level scatter write
|
||
function analogous in functionality to mkntfs.c::ntfs_rlwrite() but
|
||
with arguments more like ntfs_attr_pwrite() to allow for more
|
||
flexible use.
|
||
- Don't use string concatenation with __FUNCTION__ as gcc-3.x don't
|
||
like it.
|
||
- Move runlist functions to runlist.[hc]. (Richard Russon)
|
||
- Add new API to volume.[hc] and use it (Szakacsits Szabolcs):
|
||
ntfs_version_is_supported(),
|
||
NTFS_V{1_[12],2_x,3_[01]}() macros,
|
||
ntfs_logfile_reset(), and
|
||
ntfs_volume_set_flags().
|
||
- Change size autodetection of non-block device files in mkntfs to use
|
||
the stat returned file size rather than the block allocation count to
|
||
cope with pre-created sparse files.
|
||
- Remove GPL message text from usage information in mkntfs.
|
||
- The word is "runlist", not "run_list", "run list", or "run-list".
|
||
- Prefix all functions with "ntfs_" and make the names of the form
|
||
"ntfs_object_action()". Keep this for all future functions!
|
||
- Change unistr.c::ntfs_names_are_equal() to return TRUE when both
|
||
names have zero length. Thanks to Leonard Norrgard for spotting this.
|
||
- Fix bug in ntfs_external_attr_find(). (Szakacsits Szabolcs)
|
||
- Fix stupid logic inversion bug in ntfs_extent_inode_open(). Same bug
|
||
was fixed in the NTFS kernel driver over six months ago but the fix
|
||
was never taken over to libntfs. (Szakacsits Szabolcs)
|
||
- Fix stupid bug in ntfs_ucsncmp(). Spotted by Leonard Norrgard.
|
||
- Fix bug where the call to ntfs_attr_{put,reinit}_search_ctx() would
|
||
free the extent inode attached to the search context but leave it
|
||
attached to the base inode, so this would lead to memory corruption
|
||
and worse problems. Thanks to Szakacsits Szabolcs for spotting this.
|
||
We now don't close extent inodes any more at all and just leave it
|
||
to the closing of the base inode to dispose of all the extent inodes.
|
||
- Add sanity check to ntfs_inode_close() to detect attempts at closing
|
||
extent inodes.
|
||
- Don't free extent inodes in attrib.c! (Szakacsits Szabolcs)
|
||
- Return the attribute list attribute when enumerating attributes, too.
|
||
Thanks to Szakacsits Szabolcs for pointing this problem out.
|
||
- New API function provided by unistr.[hc] and use it in mkntfs:
|
||
ntfs_ucsnlen().
|
||
- New API function provided by attrib.[hc] and use it in mkntfs:
|
||
ntfs_resident_attr_value_resize(),
|
||
ntfs_attr_truncate(). -- WIP
|
||
- New API functions provided by inode.[hc]:
|
||
ntfs_inode_mark_dirty(),
|
||
ntfs_inode_sync().
|
||
- Change ntfs_inode_close() to write out dirty inodes and inode extents.
|
||
- New API functions provided by lcnalloc.[hc]:
|
||
ntfs_cluster_{alloc,free}(). -- WIP
|
||
- New API function provided by bitmap.[hc]:
|
||
ntfs_bitmap_{set,clear}_run(). -- WIP
|
||
- Extend the volume.h::ntfs_volume structure with variables required by
|
||
the cluster and mft allocators and set them up in
|
||
volume.c::ntfs_volume_startup().
|
||
- ntfs_umount() now also does an fdatasync() on the device before
|
||
closing it.
|
||
- Added new utility ntfstruncate, primarily to be able to test the
|
||
new ntfs_attr_truncate() function, it is not compiled by default.
|
||
Note, the library can currently only make attributes smaller and it
|
||
only works on uncompressed, unencrypted inodes which do not contain
|
||
attribute lists, i.e. on simple files, but that was quite a lot of
|
||
new code in itself which needs a lot of testing!
|
||
- Fix library to never issue writes on volumes that have been mounted
|
||
read-only.
|
||
- New API provided by mft.[hc]:
|
||
ntfs_mft_record_{alloc,free}(). -- WIP
|
||
|
||
12/03/2002 - 1.6.0 - More mkntfs options and cleanups.
|
||
Fix typo in usage information of mkntfs. Thanks to Richard Russon for
|
||
spotting it.
|
||
Change version number in mkntfs and ntfsfix to match the linux-ntfs
|
||
release version number.
|
||
Added two new options to mkntfs; -I, which disables content indexing
|
||
on the volume and -C, which enables compression on the volume.
|
||
|
||
01/02/2002 - Attempt to fix compile warnings on powerpc.
|
||
Attempt to fix compile warnings on powerpc. It seems powerpc uses
|
||
char == unsigned char which was breaking some signed comparisons.
|
||
|
||
26/01/2002 - 1.5.1 - Fix two buglets in ntfsfix and more compilation fixes.
|
||
Fix two silly buglets in ntfsfix, where we were calling is_baad_record
|
||
instead of is_baad_recordp. Silly me... Thanks to David Martinez Moreno
|
||
for reporting the compilation warnings on ia64 which led me to find the
|
||
bug.
|
||
Fix compilation problems in logfile.h on big endian arches. Hopefully,
|
||
now will really compile on all arches.
|
||
|
||
10/01/2002 - 1.5.0 - Fix bug in $LogFile size calculation.
|
||
Fix bug in $LogFile size calculation where we would take the size to
|
||
be zero on partitions between 200 and 400MiB in size.
|
||
Add requirement for linux-ntfs to linux-ntfs-devel.
|
||
|
||
15/12/2001 - Remove atomic ops and add compiler version check.
|
||
Hopefully this will preempt "it doesn't compile for me" messages from
|
||
people with gcc < 2.96.
|
||
Change bail out error check for seek to backup boot sector to a warning
|
||
since SuSE 7.2 + loads of stuff and 2.5.1-pre11 returns EINVAL instead
|
||
of ENOSPC.
|
||
Remove atomic code as it isn't defined on non-i386 arches.
|
||
|
||
06/12/2001 - Change ntfs_mount to accept second argument for mount flags.
|
||
ntfs_mount() now supports mount flags as per "man 2 mount". Currently
|
||
only the MS_RDONLY flag is supported/implemented. This breaks
|
||
compatibility with older libntfs versions and hence the major version
|
||
number of the library has been increased.
|
||
Adapt utilities to make use of new ntfs_mount syntax.
|
||
|
||
17/11/2001 - Add description of compression algorithm.
|
||
|
||
09/11/2001 - 1.4.0 - Major fix in mkntfs, small update to ntfsfix and others.
|
||
Update ntfsfix to support Windows XP NTFS volumes (NTFS 3.1).
|
||
Update layout.h with more information.
|
||
(Re)enable shared libraries.
|
||
Changes to mkntfs:
|
||
- Correct handling of directories on volumes with cluster sizes
|
||
above 4096 bytes.
|
||
- Lower minimum size of NTFS partitions to 1MiB, scaling down the
|
||
logfile size as necessary.
|
||
- Support a wider range of input parameters. Now should have all
|
||
valid combinations covered.
|
||
- Update man page.
|
||
- Implement better determination of device size.
|
||
- Various bug fixes.
|
||
|
||
22/08/2001 - 1.2.2 - Small fix in mkntfs and minor updates.
|
||
Small fix in mkntfs for small volumes with non-standard sector sizes,
|
||
where the default values would result in a sector size smaller than the
|
||
sector size and mkntfs would refuse to run because of this. The man
|
||
page was updated accordingly.
|
||
Minor updates/clarifications to include/layout.h.
|
||
|
||
02/08/2001 - 1.2.1 - Added ntfsfix man page and minor cleanup.
|
||
David Mart<72>nez Moreno <david.martinez@rediris.es> donated a man page
|
||
for ntfsfix as well as spelling mistake fixes all over the place.
|
||
|
||
26/07/2001 - 1.2.0 - Important bug fixes to mkntfs.
|
||
Bug fixes for cluster sizes > 4kb involving corrections to mft mirror
|
||
size and contents, mft data attribute position and mft bitmap size.
|
||
Some of those were nasty so this is a major improvement. Hopefully these
|
||
were the last bugs.
|
||
|
||
25/07/2001 - 1.0.2 - Small cleanup of the distribution.
|
||
Move mkntfs to sbin (was put in bin before).
|
||
Small bugfix to mkntfs man page.
|
||
|
||
24/07/2001 - 1.0.1 - Small cleanup of the distribution.
|
||
Confirmed that at least gcc-2.96 is needed to compile linux-ntfs.
|
||
Removed ldm.c from linux-ntfs. It will reappear as ldminfo.c in a new
|
||
package, probably linux-ldm.
|
||
Taken out some file from the distribution, but they are still present
|
||
in CVS. This is because they are not really useful except if you are
|
||
a developer wanting to play about.
|
||
|
||
10/06/2001 - 1.0.0 - mkntfs release and bugfixes to ntfslib and the others.
|
||
Also, released ldm which dumps the ldm database on Win2k/XP dynamic
|
||
disks.
|
||
A man page for mkntfs is also installed by make install so man 8 mkntfs
|
||
can be used to show the recognised command line options.
|
||
Building of shared libraries is disabled by default as it breaks on
|
||
some systems.
|
||
Probably need at least gcc-2.95 or something like that from now on.
|
||
|
||
02/02/2001 - Started ChangeLog.
|
||
|