Changes to NTFS-3G:
-------------------
Fixed inserting a new ACL after wiping out by chkdsk
Fixed Windows-type inheritance
Fixed ignoring the umask mount option when permissions are used
Fixed checking permissions when Posix ACLs are compiled in but not enabled
Disabled option remove_hiberfile on read-only mounts
Implemented an extended attribute to get/set EAs
Avoid full runlist updating in more situations
Update ctime after setting an ACL
Use MFT record 15 for the first extent to MFT:DATA
Ignore the sloppy mount option (-s)
Implemented FITRIM (fstrim) ioctl
Reengineered the compression algorithm
Changes to ntfsprogs:
---------------------
Return success from ntfsprogs utilities with options –version and the like
Implemented configure option –enable-quarantined for non functional utilities
Added manuals for ntfsdecrypt, ntfswipe, ntfstruncate and ntfsfallocate
libntfs: added use of hd library to get the legacy BIOS geometry
libntfs: switched to /proc/mounts for checking existing mounts
libntfs: fixed usa checking by ntfsck on 4K sector disks
libntfs: fixed processing compressed data beyond file size (Windows 8 compliance)
libntfs: fixed expanding a resident attribute without inserting holes
libntfs: allow DACLs to not have any ACE
libntfs: ignore unmapped regions when checking whether sparse
libntfs: upgraded the Win32 interface for use with ntfsprogs
ntfsresize: enabled relocating the MFT when shrinking a volume
ntfsresize: fixed trying to update the MFT and Bitmap on a test run
ntfsresize: fixed updating all the MFT runs in a relocated MFT
ntfsresize: set the backup boot sector when the size is reliable
ntfsresize: reserved a single sector for the backup boot sector
ntfsundelete: output the modification time when scanning files
ntfsundelete: ported to Windows
ntfsclone: fixed wiping fragmented metadata when creating a metadata image
ntfsclone: allowed cloning a file system despite allocation errors
ntfsclone: fixed bad copying of the backup boot sector
ntfsclone: ported to Windows
ntfsdecrypt: made compatible with libgrypt-1.6
* Fix: successful hard link removal may reported "Input/Output error".
* Fix: listing the content of a single directory having over 600,000 files
and subdirectories may returned "Input/Output error" or truncated
directory listing.
* Fix: atime mount option didn't work.
* Fix: POSIX file time updates (file access and modification times, inode
change time). Please note, though NTFS-3G updates the times correctly now,
FUSE may keep caching old, invalid time attributes for a short time after
rename(2), creat(2), and some file operations which involve hard links.
FUSE has fixed already the first two cases and they may be included in
the Linux kernel 2.6.24 release.
* New: relatime support was added and made the default atime update method.
* Fix: reads over the end of a file could return "invalid argument" error
using some recent kernels. This problem may have caused Thunderbird
to hang.
* Fix: some faulty versions of the gcc compiler have crashed during
compilation.
* Fix: the utimes(2) system call may incorrectly updated the last status
change filestamp.
* Change: the ntfs.streams.list extended attribute enumerates Alternate
Data Streams (ADS) '\0' separated.
* fix: big-endian problems exposed by the NTFS-3G Test Suite.
* fix: free space calculation may was wrong for >1 TB volumes.
* fix: some faulty Thunderbird versions caused system log flooding.
* fix: uClibc and uClinux improvements.
* fix: logging improvements.
* fix: many other minor fixes.
* fix: unwritten sparse file regions could get corrupted if the end
of a write wasn't aligned to cluster boundary. Sparse files are very
rarely used, most typically by bittorent clients.
* fix: creation of read-only files failed.
* change: free inode calculation was CPU intensive during write activity.
This could reduce write performance when millions of files are used if
a file manager or desktop applet regularly polled for disk space usage.
Now the statfs() system call is constant time.
* change: file creation performance is improved by 40-80%.
* change: smart directory traversal is 20-200% faster for disk based and
300-600% faster for memory cache based traversals.
STABLE Version 1.913 (September 13, 2007) Release Notes
* change: free disk space calculation was highly CPU intensive during
write activity. This could reduce write performance severely, especially
for huge volumes if a file manager or desktop applet regularly polled
for disk space usage. Now the calculation is constant time, around only
10 microseconds on a typical desktop, and it's completely independent
of the volume size.
* fix: hibernation check was too rigid and mount was refused in read/write
mode unnecessarily in some cases.
* all performance improvements included unchanged from the 1.910-RC test
release. Please see those details below.
Version 1.910-RC (September 10, 2007) -- Release Notes
* change: significantly improved the performance of writing many files,
typically by 50-1000% (copying files, unpacking, untarring packages,
compilation, directory synchronization, ...).
* change: improved the performance of writing multi-GB size files,
particularly after the creation of many thousands of other files.
Previous disk space defragmentation is highly advised for the best
possible speed. File level defragmentation is not enough.
* change: improved concurrent write performance.
* fix: file rename may updated the modification time of some files which
caused some backup tools, like rsync, not to preserve always
this timestamp.
* fix: unmount (fusermount -u) was denied for an unprivileged user who
was allowed to mount a block device. FUSE 2.7.0+ user space package
is required for the full fix.
* fix: the driver could hang if there wasn't enough memory during reading
a large directory
* fix: reading a directory may reported success when there was an error
* fix: metadata update error was ignored in some very rare cases during
writing a file
* fix: permissions checking was turned on if umask, fmask and dmask was
set to the default 000 value.
* change: manual update, added Windows filename compatibility section
* change: lots of logging improvements
* fix: move, rename and hard link could return "input/output error"
* fix: very rare, recoverable directory corruption
* fix: portability improvements
* change: more troubleshooting hints if a volume can't be mounted
* change: logging improvements
* new: install executables to the root file system otherwise mount
could fail during boot
* fix: any kind of file size change failure returned "Operation not permitted"
* fix: file close failure was not always reported
* fix: unmount failure was not always reported
* fix: file creation always gave "input/output error" if the $MFT Bitmap
wasn't up-to-date
* fix: converting very long file names to Unicode may failed
* fix: syslog messages didn't show the low level error detail
* fix: compilation improvements on OS X and NetBSD
* new: read-write mount is supported using the "force" mount option if
the logfile is unclean
* new: libntfs-3g is versioned
* fix: default ownership of files weren't always set to the mounting user
* fix: mount was denied if the NTFS Master File Table copy had non-standard size
* fix: catch and deny all junction/reparse point write operations
* fix: multiply -o options weren't allowed (FreeBSD's mount(8) requires this)
* fix: don't try to run Linux specific code on non-Linux OSes
* fix: fakeraid/softraid detection was incorrect
* change: major performance improvement for writing large
files (new block allocator)
* change: manual update, added access handling, security section
* new: use the 'nonempty' FUSE mount option by default, so the driver
behaves as the in-kernel file systems
* new: --disable-ldconfig configure option