~ubuntu-branches/ubuntu/dapper/linux-ntfs/dapper

« back to all changes in this revision

Viewing changes to ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): David Martínez Moreno
  • Date: 2005-11-08 20:20:23 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20051108202023-dpn4lutm8o0div8g
Tags: 1.12.1-1
* New upstream release (closes: #332930):
  - Fixed lots of memory leaks in the tools.
  - ntfsmount now uses the new API, and it has several fixes.
  - Support journals which have been modified by chkdsk.
  - New API for creating hard links, index handling, high-level creation and
    deletion of files and directories.
  - New utility ntfscmp (make extra) which compares two NTFS volumes and
    tell the differences. It's used for development, debugging, testing, etc.
  - Added robustness to several tools.
  - ntfsclone: fix saving by sectors during --rescue.
  - ntfsmount: Add 'locale' option and change interface to 'ntfsmount device
    mount_point'.
  - Fixed problem with kernel 2.4 and mkntfs.
  - Change ALL utilities to display the libntfs version they are running on.
    This should make debugging easier in the case that people are running
    mismatched utilities/library.
* This new release fixes problems with libfuse 2.4.0 (closes: #336357).
* Fixed a lot of typos in the manpages, kindly submitted by A Costa. Thanks!
  (closes: #336143, #336144, #336145, #336147, #336148).
* Fixed a couple of typos by me.
* debian/control: The SONAME of libntfs was bumped. Created new package
  (libntfs8) and removed the old one.
* debian/copyright: Updated the FSF postal address.
* Added debian/ntfsprogs.links in order to ship mkfs.ntfs and
  mount.ntfs-fuse.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
10/10/2005 - 1.12.1 - Minor fix to location of mount.ntfs-fuse and mkfs.ntfs.
 
2
 
 
3
        - Fix hardcoded location for uninstalling mount.ntfs-fuse hardlink to
 
4
          match the relocatable location for installing it.  (Anton, Szaka)
 
5
        - Move mount.ntfs-fuse and mkfs.ntfs to be symlinks instead of
 
6
          hardlinks and move both to /sbin rather than prefix/sbin.  Note we
 
7
          still obey $destdir so building packages works as well as installing
 
8
          into alternate chroot / other system still works.  (Anton)
 
9
        - ntfscmp: fix some corner cases and all memory leaks; handle corrupt
 
10
          NTFS more gracefully.  (Szaka)
 
11
        - If the system does not have realpath(), supply our own dummy version
 
12
          which just copies the string without any kind of checking or
 
13
          expansion.  (Anton)
 
14
 
 
15
07/10/2005 - 1.12.0 - Lots of fixes and enhancements!
 
16
 
 
17
        - Add ./configure detection for gnutls library and make minimum version
 
18
          1.2.3 which is the one that has the rsa key export fixed.  (Anton)
 
19
        - Put in a minimum version for libgcrypt of 1.2.0 as I do not know if
 
20
          our code works with earlier versions.  (Anton)
 
21
        - Fix some memory leaks in ntfsdecrypt and do some cleanups.  (Anton)
 
22
        - Fix ntfsdecrypt to also work with passwordless files.  Note this
 
23
          requires a patched gnutls library or it still does not work.  (Anton)
 
24
        - Add new APIs for index adding/remove:
 
25
            index.[ch]::ntfs_index_add_filename and index.[ch]::ntfs_index_rm.
 
26
          They support only basic cases, so can fail with EOPNOTSUPP.  (Yura)
 
27
        - Add new API for index context reinitialization:
 
28
            ntfs_index_ctx_reinit.  (Yura)
 
29
        - Add new high-level APIs for file and directory creation/deletion that
 
30
          rely on ntfs_index_{add_filename,rm}:
 
31
            dir.[ch]::ntfs_create and dir.[ch]::ntfs_delete.  (Yura)
 
32
        - Add @creation_time field to struct ntfs_inode and rename [acm]time
 
33
          fields to @last_{data_change,mft_change,access}_time. Update them in
 
34
          STANDARD_INFORMATION and FILE_NAMEs during inode sync.  (Yura)
 
35
        - layout.h: Add @v1_end and @v3_end markers for offsetof to struct
 
36
          FILE_NAME_ATTR. Change type of @clusters_per_index_block from u8 to
 
37
          s8, fix error in comment. Simplify a bit INDEX_ENTRY struct.  (Yura)
 
38
        - ntfstime.h: Use cpu_to_sle64 and sle64_to_cpu in utc2ntfs and
 
39
          ntfs2utc respectively. Update all users.  (Yura)
 
40
        - Add @indx_record_size and @inx_record_size_bits to struct ntfs_volume.
 
41
          Set them during mount.  (Yura)
 
42
        - attrib.c: Set RESIDENT_ATTR_IS_INDEXED flag for FILE_NAME attribute in
 
43
          ntfs_attr_add.  (Yura)
 
44
        - inode.c: Do not sync STANDARD_INFORMATION and FILE_NAMEs for
 
45
          freed inodes.  (Yura)
 
46
        - mft.c: Set *time and *size fields of struct ntfs_inode in
 
47
          ntfs_mft_record_alloc.  (Yura)
 
48
        - Make ntfsmount use new APIs for file and directory creation/deletion.
 
49
          Implement utime operation.  (Yura)
 
50
        - Hard link mkfs.ntfs and mkfs.ntfs.8 with mkntfs and mkntfs.8.  (Szaka)
 
51
        - Only include sys/ioctl.h in libntfs/device.c if ./configure detected
 
52
          it to be present.  (Christophe)
 
53
        - ntfscluster: fix incorrect volume usage calculation.  (Szaka)
 
54
        - ntfscluster, utils.c::mft_next_record(): fix gigaleak.  (Szaka)
 
55
        - Define PATH_MAX if not defined in ntfsprogs/ntfsmount.c and
 
56
          libntfs/volume.c.  Needed to compile on DOS with djgpp.  (Christophe)
 
57
        - Switch ntfsmount to use getopt_long.  (Yuval, minor fixes by Yura)
 
58
        - ntfsmount: Fix 'df' output.  (Yuval)
 
59
        - Support journals which have been modified by chkdsk.  (Anton, Szaka)
 
60
        - Support journals ($LogFile) with only one restart page as well as
 
61
          journals with two different restart pages.  (Anton, Szaka)
 
62
        - Add @val parameter to ntfs_attr_add and @val and @size parameters to
 
63
          ntfs_resident_attr_record_add.  (Yura)
 
64
        - Fix attribute list adding for always resident attributes.  (Yura)
 
65
        - New API for hard link creating: dir.[ch]::ntfs_link.  (Yura)
 
66
        - ntfsresize: emphasize that disk partitioning must use sector as the
 
67
          unit instead of cylinder to avoid shifting of the partition.  (Szaka)
 
68
        - Rename API: ntfs_volume_set_flags() as it is misleading.  It does not
 
69
          set a flag, it overwrites the flags!  Rename it to
 
70
          ntfs_volume_write_flags() and clean it up a lot.  Update all
 
71
          callers.  (Anton)
 
72
        - Change everything to supply an ntfs_inode and NULL for mft record
 
73
          when calling ntfs_attr_get_search_ctx() except a very few cases which
 
74
          genuinely need this functionality as they work on a too low level.
 
75
          Make sure all those cases are ok.  (Anton)
 
76
        - ntfsclone: fix saving by sectors during --rescue (Scott Hansen, Szaka)
 
77
        - Fix the definition of the CHKD ntfs record magic.  It had an off by
 
78
          two error causing it to be CHKB instead of CHKD.  (Anton)
 
79
        - Add new utility ntfscmp (make extra) which compares two NTFS volumes
 
80
          and tell the differences. It's used for development, debugging,
 
81
          testing, etc.  (Szaka)
 
82
        - ntfsresize, ntfsclone: accept incorrect $Bitmap size if it covers
 
83
          the entire volume.  (Szaka)
 
84
        - mkntfs: Fix silly bug where I forgot to add the "H:S:p:" string to
 
85
          the getopt() parsing string for those options.  Cannot be used very
 
86
          often if people only now noticed!  (Anton)
 
87
        - ntfsmount: Add 'locale' option.  (Yura)
 
88
        - ntfsmount: Change interface to 'ntfsmount device mount_point'.  (Yura)
 
89
        - Hardlink ntfsmount to /sbin/mount.ntfs-fuse, thus it possible mounting
 
90
          from fstab by specifying ntfs-fuse filesystem type.  (Yura, Szaka)
 
91
        - Fix stupid bug in mkntfs which caused it to fail even though only the
 
92
          backup boot sector could not be written because a 2.4 kernel is used
 
93
          and the partition has an odd number of sectors.  (Anton)
 
94
        - Add API (actually renamed from what Rich/FlatCap did):
 
95
          volume.[hc]::ntfs_libntfs_version() which returns a pointer to a
 
96
          static const string of the libntfs verion, i.e. at the moment this is
 
97
          "8.0.0".  This required moving the version specifications from
 
98
          libntfs/Makefile.am to configure.ac.  This should hopefully have the
 
99
          sideeffect that I will remember to increment it when incrementing the
 
100
          ntfsprogs version number when making a release given the two are
 
101
          right under one another.  (Anton)
 
102
        - Change ALL utilities to display the libntfs version they are running
 
103
          on.  This should make debugging easier in the case that people are
 
104
          running mismatched utilities/library.  (Anton)
 
105
 
 
106
08/08/2005 - 1.11.2 - ntfsdecrypt now works and lots of fixes and improvements.
 
107
 
 
108
        - ntfsls: Fix display of non-system files whose name begins with the
 
109
          '$' character.  (Yura)
 
110
        - Move ntfs2utc and utc2ntfs from utils.[ch] to ntfstime.h.  (Yura,
 
111
          Anton)
 
112
        - Add [acm]time fields to struct ntfs_inode and set them during
 
113
          ntfs_inode_open().  Update ntfsmount to use them.  (Yura)
 
114
        - index.c::ntfs_index_lookup(): Fix bug when index context did not
 
115
          point to the index root in which the entry located.  (Yura)
 
116
        - ntfsresize: relocate_attributes(): Do not stop processing MFT record
 
117
          attributes at AT_DATA of $BadClus and $Bitmap.  In practice, there
 
118
          are no non-resident attributes after them so this is a bug which was
 
119
          introduced in 1.11.0 which should not have caused data loss.  (Szaka)
 
120
        - ntfsresize: Support relocation of $MFT with $ATTRIBUTE_LIST.  (Szaka)
 
121
        - ntfsresize: Support resizing into the middle of a $MFT $DATA
 
122
          extent. (Szaka)
 
123
        - ntfscp: Fix attribute name parsing bug introduced in 1.10.0.  (Yura)
 
124
        - ntfsinfo: Dump more information about indexes.  (Yura)
 
125
        - Fix unistr.c::ntfs_mbstoucs() on systems with utf8 locale.  (Yura)
 
126
        - Change errno and print more verbose message in the case of a failing
 
127
          logfile check.  (Yura)
 
128
        - Fix random errno returned by ntfs_inode_open() if the MFT record  was
 
129
          not in use.  (Szaka)
 
130
        - Fix ntfs_attr_p{read,write}() to not return less bytes if trapped on
 
131
          unmapped runlist region.  (Yura)
 
132
        - Make find work correctly on volumes mounted by ntfsmount.  (Yura)
 
133
        - Replaced all occurances of ENOTSUP with EOPNOTSUPP to be in better
 
134
          harmony with the kernel driver.  (Szaka)
 
135
        - Fix ntfs_is_cb_compressed() for nasty runlist merging case in which
 
136
          compression block was incorrectly treated as not compressed.  (Yura,
 
137
          Anton)
 
138
        - ntfsresize: Fix for ntfs_rl_truncate() EIO: Always set the correct
 
139
          size for $BadClus::$Bad, even if Windows set it incorrectly.  (Szaka)
 
140
        - Make ntfs_attr_open() resolve attribute name for ntfs_attr struct
 
141
          in case NULL passed instead of name.  (Yura)
 
142
        - ntfsdecrypt (make extra) is now fully functional using libgcrypt and
 
143
          gnutls 1.2.0 (not later, that is broken at present).  It decrypts all
 
144
          types of compressed files that ntfs creates, i.e. DesX, AES-256, and
 
145
          3Des.  The only thing it requires is the user's private key which
 
146
          needs to be supplied via a .pfx file (a PKCS#12 file).  Such a file
 
147
          can be created in windows XP SP2 by running cipher with the export
 
148
          key option or in older windows versions by running the certificates
 
149
          snap-in to the microsoft management console (mmc).  Note that due to
 
150
          a bug in gnutls you have to protect the .pfx file with a password.
 
151
          An empty password will not work.  (Yuval, Anton)
 
152
        - Add information about $EFS on-disk structures to layout.h.  (Yuval,
 
153
          Anton)
 
154
        - Fix build so that make extra directly after ./configure works.
 
155
          Thanks to Yuval for the bug report.  (Anton)
 
156
        - Add ./configure option --enable-crypto and if enabled detect whether
 
157
          libgcrypt is present or not and only then build ntfsdecrypt.  (Anton)
 
158
 
 
159
20/07/2005 - 1.11.1 - Fix several ntfsmount bugs.
 
160
 
 
161
        - ntfsmount: Fix several bugs when too small buffer was allocated for
 
162
          filenames on systems with utf8 locale.  (Yura, many thanks to Rich
 
163
          for finding bug)
 
164
 
 
165
19/07/2005 - 1.11.0 - Fixes and a new utility ntfsmount, a FUSE ntfs module.
 
166
 
 
167
        - ntfscp: fix signal handling: handle both SIGTERM and SIGINT, print
 
168
          correct message.  (Yura)
 
169
        - Update manual pages for ntfsprogs, ntfsclone, ntfsresize and 
 
170
          ntfsfix.  (Szaka)
 
171
        - ntfsclone: detect and hint users if the destination fs does not
 
172
          support sparse files.  (Szaka)
 
173
        - Fix memory management error in ntfs_inode_close.  (Yura)
 
174
        - Add new utility - ntfsmount.  It is a FUSE module that reles on
 
175
          libntfs.  (Yura)
 
176
        - ntfsresize: support bad clusters list ($BadClus:$Bad), a.k.a. disks
 
177
          having bad sectors if the new --bad-sectors option is used.  (Szaka)
 
178
        - ntfsinfo: Dump $EA_INFORMATION and $EA attributes.  (Yura)
 
179
        - mkntfs: Fix backup bootsector creation.  Thanks to Timur Amirkhanov
 
180
          for pointing these stupidities out.  (We forgot to set the size
 
181
          before doing it and we wrote more bytes then there were in the buffer
 
182
          if sector size was above 8kiB and we only reserved one sector even
 
183
          when sector size was less than 512 bytes and then we wrote 512 bytes,
 
184
          i.e. beyond the end of the device.)  (Anton)
 
185
        - Add new utility (make extra) - ntfsdecrypt.  (Yuval)
 
186
        - Improve "already mounted" check.  (Yura)
 
187
        - Remove AC_FUNC_MALLOC and AC_FUNC_REALLOC from configure.ac as we
 
188
          do not provide replacement functions for them and the checks break
 
189
          cross compilation.  (Christophe)
 
190
 
 
191
20/06/2005 - 1.10.0 - Lots of new features, enhancements, and bug fixes.
 
192
 
 
193
        - Add start_vcn parameter to ntfs_get_size_for_mapping_pairs() and
 
194
          ntfs_mapping_pairs_build() and adapt all callers.
 
195
        - Bump library version due to source level API change above.
 
196
        - Add ntfs_debug() and ntfs_error() to make kernel<->userspace porting
 
197
          easier.
 
198
        - ntfsinfo: Added dumping of index records from $INDEX_ROOT and 
 
199
          $INDEX_ALLOCATION.  (Yura)
 
200
        - ntfsinfo: Changed message for resident $INDEX_ALLOCATION to print
 
201
          error, because $INDEX_ALLOCATION can't be resident.  (Yura)
 
202
        - ntfscp: Not longer update $FILE_NAME attributes, because Windows
 
203
          doesn't update them unless a rename operation occur.  (Yura)
 
204
        - ntfsinfo: dump attribute list entries in verbose mode and display
 
205
          attribute instance of all attributes.  (Yura)
 
206
        - new API: attrlist.[ch]::ntfs_attrlist_entry_add add entry to
 
207
          attribute list.  (Yura)
 
208
        - ntfs_inode_sync: write out dirty attribute list from cache to
 
209
          disk.  (Yura)
 
210
        - Add stop_vcn parameter to ntfs_mapping_pairs_build() and adapt
 
211
          all callers.  This allows filling an attribute extent with mapping
 
212
          pairs and then continuing in a different extent once the first extent
 
213
          is full.  (Yura)
 
214
        - Remove vol->nr_mft_records and update all users.  (Anton)
 
215
        - Add new API to mft.[hc]::ntfs_mft_record_{alloc,free}().  (Anton)
 
216
        - Sync inodes before closing attributes or the umount fails.  (Anton)
 
217
        - Close extent inodes in ntfs_inode_close() when closing a base inode
 
218
          and fix handling of ->extent_nis for base inodes.  (Anton)
 
219
        - Add ntfsmftalloc utility to the extra utilities to help test the mft
 
220
          record allocator.  (Anton)
 
221
        - Fix ntfs_attr_record_resize() to cope with a newsize < 8.  This means
 
222
          you can call ntfs_attr_record_resize() with newsize = 0 to delete an
 
223
          attribute record from its mft record but you would still need to
 
224
          update the attribute list attribute if present.  (Anton)
 
225
        - Add the useful offsetof() macro to ntfs/support.h which returns the
 
226
          offset of a structure element.  (Anton)
 
227
        - New API: attrib.[ch]::ntfs_make_room_for_attr (it is ported from
 
228
          mkntfs).  (Yura)
 
229
        - New API: attrib.[ch]::ntfs_non_resident_attr_record_add() and
 
230
          attrib.[ch]::ntfs_attr_record_rm(). This is low-level functions to
 
231
          manipulate attribute extents.  (Yura)
 
232
        - Improvement to ntfs_non_resident_attr_expand: now it can expand multi
 
233
          extent attributes and allocate new MFT records if mapping mapirs
 
234
          doesn't fit current.  (Yura)
 
235
        - Implement attrlist.[ch]::ntfs_attrlist_entry_rm().  (Yura)
 
236
        - Attribute handling functions always update highest_vcn, if it was
 
237
          modified.  (Yura)
 
238
        - Add new API unistr.[hc]::ntfs_ucsndup().  (Anton)
 
239
        - Make libntfs/attrib.c::ntfs_attr_open() make a copy of the attribute
 
240
          name unless it is one of the internal names.  (Anton)
 
241
        - New API: attrib.[ch]::ntfs_resident_attr_record_add.  (Yura)
 
242
        - New API: inode.[ch]::ntfs_inode_add_attrlist.  (Yura)
 
243
        - New API: attrlist.[ch]::ntfs_attrlist_need.  (Yura)
 
244
        - ntfsclone: save by using our, not NTFS cluster allocation bitmap. 
 
245
          This gives more control in the future what to save.  (Szaka)
 
246
        - New helper: attrlist.h::ntfs_attrlist_mark_dirty.  (Yura)
 
247
        - New API: attrib.[ch]::ntfs_attr_update_mapping_pairs and made
 
248
          ntfs_non_resident_attr_{shrink,expand} use it, thus attribute resize
 
249
          functions is almost completed, but still very experemental and maybe
 
250
          dangerous.  (Yura)
 
251
        - Fix stupid bug in ntfs_attr_reinit_search_ctx() introduced during
 
252
          changes to ntfs_external_attr_find().  This is because
 
253
          ntfs_attr_lookup() intentionally does not clear ctx->al_entry but
 
254
          does clear ctx->base_ntfs_ino which in turn means that
 
255
          ntfs_attr_reinit_search_ctx() does not clear ctx->al_entry.  Now,
 
256
          ntfs_attr_reinit_search_ctx() always clears ctx->al_entry.
 
257
        - Rename scpu_to_le{16,32,64}() to cpu_to_sle{16,32,64}() to match the
 
258
          kernel.
 
259
        - ntfsclone: honor bad clusters list ($BadClus:$Bad), known bad sectors
 
260
          aren't tried to be saved anymore.  (Szaka)
 
261
        - Add new API attrib.[ch]::ntfs_attr_record_move_to and make
 
262
          ntfs_resident_attr_resize use it.  (Yura)
 
263
        - Improve ntfs_resident_attr_resize to try make attributes non-resident
 
264
          when such convert is reasonable.  (Yura)
 
265
        - New API attrib.[ch]::ntfs_attr_record_move_away().  (Yura)
 
266
        - New API inode.[ch]::ntfs_inode_attach_all_extents .  (Yura)
 
267
        - New API inode.[ch]::ntfs_inode_free_space.  (Yura)
 
268
        - Improved layout.h::ATTR_RECORD to have {non_,}resident_end and
 
269
          compressed_end fields. Use offsetof(ATTR_RECORD, *_end) to get size
 
270
          of accordable attribute.  (Yura)
 
271
        - Make ntfs_attr_update_mapping_pairs and ntfs_inode_add_attrlist use
 
272
          ntfs_inode_free_space when there is no enough space for attribute
 
273
          list.  (Yura)
 
274
        - Remove inode.h::NIno{Clear,Set,}AttrListNonResident and attr_list_rl
 
275
          field from inode.h::_ntfs_inode struct. Adapt all users.  (Yura)
 
276
        - Add --attibute, --attr-name and --inode options to ntfscp.  (Yura)
 
277
        - ntfscp is moved from extra to standard program set.  (Yura)
 
278
        - Add new high level API inode.[ch]::ntfs_inode_add_attr and make ntfscp
 
279
          use it when requested attribute isn't exist.  (Yura)
 
280
        - Add new high level API inode.[ch]::ntfs_inode_rm_attr.  (Yura)
 
281
        - Extend ntfs_attr_pwrite to cope with extending the attribute size
 
282
          and with instantiating holes.  (Yura)
 
283
        - Add new API's ntfs_rl_sparse and ntfs_rl_get_copmressed_size.  (Yura)
 
284
        - ntfsinfo: Dump flags names for $STANDARD_INFORMATION and $FILE_NAME
 
285
          attributes.  (Yura)
 
286
        - Move NAttr{Sparse,Compressed,Encrypted} to inode struct preserving
 
287
          the previous interface.  (Yura, with fixes from Anton)
 
288
        - Rename/move inode.[hc]::ntfs_inode_{add,rm}_attr() to
 
289
          attrib.[hc]::ntfs_attr_{add,rm}(), respectively.  (Anton)
 
290
        - Update sparse/compressed/encrypted bits in STANDARD_INFORMATION
 
291
          during inode sync.  (Yura)
 
292
        - Rename NTFS_SECTOR_SIZE to NTFS_BLOCK_SIZE to keep in sync with
 
293
          kernel driver.  (Yura)
 
294
        - Port logfile checking routines from the kernel to the library and
 
295
          integrate them with mount process.  (Yura)
 
296
        - ntfscp: Added SIGINT (Ctrl+C) handler, improved error handling in
 
297
          sync failed case.  (Yura)
 
298
        - Fix a nasty runlist merge bug when merging two holes.  (Anton)
 
299
        - ntfsfix: empty journal and mark volume dirty for chkdsk if ntfs_mount
 
300
          failed. This makes read-write mounting of NTFS metadata images 
 
301
          possible by ntfsprogs and the kernel driver what were created by
 
302
          versions of ntfsclone previous than 2.0.0. (Szaka)
 
303
        - ntfsclone: added a new option, --ignore-fs-check. It can be used
 
304
          only with the --metadata option. The clusters causing the 
 
305
          inconsistency are saved too. (Szaka)
 
306
        - ntfsclone: added a new option, --rescue. It ignores read errors so
 
307
          disks having bad sectors (dying disks) can be rescued efficiently,
 
308
          with minimal stress on them. (Szaka)
 
309
        - ntfsfix: fix invalid mft records in $MFTMirr. (Szaka)
 
310
        - Added a trigger script to the BK repository that will send an email
 
311
          to linux-ntfs-cvs@lists.sourceforge.net mailing list when someone
 
312
          pushes successfully to the ntfsprogs repository on bkbits.net.  This
 
313
          is done on the server side and is thus independent of whether the
 
314
          client doing the push has got a correct email setup.  (Yura, Anton)
 
315
        - ntfsclone: make --metadata work with the new $Logfile checking code.
 
316
          Save at least the first 16 KiB of $Logfile (the two RSTR records 
 
317
          should always be included if present). Save also records used for
 
318
          checking empty $Logfile. (Szaka)
 
319
        - ntfscp: add ability to specify directory as destination file.  (Yura)
 
320
        - ntfsresize: fix segfault during filesystem check if NTFS was corrupted
 
321
          in a way that clusters were referenced outside of the volume.  (Szaka)
 
322
        - Major rewrite of libntfs/win32_io.c and in particular seek, read, and
 
323
          write related code.  As part of this perform run-time detection of
 
324
          presence of SetFilePointerEx() and if not present emulate it.
 
325
        - ntfsclone: --rescue works at the lowest, sector and not cluster level
 
326
          thus more data can be rescued. The contents of the unreadable sectors
 
327
          are filled by character '?' and the beginning of such sectors are
 
328
          marked by "BadSectoR\0".  (Krishna Mohan Gundu, Szaka)
 
329
        - ntfsclone: fixed an off-by-one error during --metadata in function
 
330
          wipe_data().  (Szaka)
 
331
        - Detect and refuse to mount hibernated Windows during ntfs_mount() if 
 
332
          the volume is tried to be opened read-write.  (Szaka)
 
333
        - Move back from BitKeeper to CVS on SF.net and fix executable
 
334
          permissions that got lost during the move.  (Anton)
 
335
        - ntfsresize: fix segfault during filesystem check if NTFS $Bitmap file
 
336
          size was larger than it should have been.  (Szaka)
 
337
        - mkntfs: Don't mark NTFS dirty if the backup boot sector could be
 
338
          successfully created.  (Szaka)
 
339
        - mkntfs: Add new option -T which fakes the time to be 00:00:00 UTC,
 
340
          Jan 1, 1970 instead of the current system time.
 
341
        - Port collate.[ch] from kernel to library and implement
 
342
          ntfs_collate_file_name. Thus we have new API's: ntfs_collate and
 
343
          ntfs_is_collation_rule_supported.  (Yura)
 
344
        - Port index.[ch] from kernel to library. New API's: ntfs_index_lookup,
 
345
          ntfs_index_ctx_{get,put}, ntfs_index_entry_mark_dirty.  (Yura)
 
346
        - Implement FILE_NAME attributes update in index during inode sync and
 
347
          enable code that set/clean sparse bit. Also add new inode state bit
 
348
          FileNameDirty to indicate that FILE_NAME attributes need update.
 
349
          At least after attribute resize we leave absolutely consist
 
350
          volume.  (Yura)
 
351
        - Update attribute definition handling.  (Anton, Yura)
 
352
        - Move utils_pathname_to_inode from to library (dir.c), adapt it
 
353
          for the library, rename it to ntfs_pathname_to_inode, update all
 
354
          users.  (Yura)
 
355
        - Set attr_name to NULL in libntfs/attrib.c::__ntfs_attr_init() and
 
356
          fixup all callers apropriately.  Thanks to FlatCap/Rich for pointing
 
357
          this out.  (Anton)
 
358
        - Determine endianness in ./configure and use that in addition to
 
359
          existing mechanisms for determining endianness.  (Anton)
 
360
 
1
361
04/09/2004 - 1.9.4 - Urgent bug fixes.
 
362
 
2
363
        - Rewrite win32_io.c to allow device level write support.  (Yuval)
3
364
        - Make ntfscp update file size in $FILE_NAME(0x30) attribute.  (Yura)
4
365
        - Fix ntfsclone crash when --restore-image was used for block device
246
607
          text and other little bits.
247
608
        - Add --disable-default-device-io-ops option to ./configure which makes
248
609
          for a smaller libntfs but results in ntfs_mount() always returning
249
 
          error with errno set to ENOTSUP.  You need to use ntfs_device_mount()
250
 
          instead.  This only makes sense with "make libs" and when an
251
 
          application linking statically against libntfs provides its own
252
 
          device io operations.  (Feature requested by Christophe Grenier.)
 
610
          error with errno set to EOPNOTSUPP.  You need to use
 
611
          ntfs_device_mount() instead.  This only makes sense with "make libs"
 
612
          and when an application linking statically against libntfs provides
 
613
          its own device io operations.  (Feature requested by 
 
614
          Christophe Grenier.)
253
615
        - Fix a duplicated free() in mkntfs. (Andras Erdei)
254
616
        - Fix option display in mkntfs. (Andras Erdei)
255
617
 
417
779
          base inode and are cached there until the base inode is closed.
418
780
        - Cleanup/streamline include file dependencies.
419
781
        - Port attribute list merging code from ntfs tng driver. API to follow.
420
 
        - Allocate a ntfs_volume in mkntfs and start initializing it instead
 
782
        - Allocate an ntfs_volume in mkntfs and start initializing it instead
421
783
          of using the opt global structure. Necessary so can call the
422
784
          modified ntfs_mapping_pairs_decompress() from mkntfs.c.
423
785
        - Add libntfs/debug.c providing: