On Thu, 21 Mar 2002, Sean Elble wrote:
> Any information on specific changes since the 1.0x releases? I know about
> the ACL/EA interface changes, and obviously there has been lots of bug
> fixes, but what about other changes, like performance enhancements, etc? I
> know the changes will be in the Changelog in the tarball, but I'm on a
> Windows machine; can't easily grab those. :-(
Just got this together - probably _too_ detailed at this point. I'll try
to do one that's a bit more of an overview. I also plan to do some
benchmarking between the 1.0.2 release and this one.
CHANGES since 1.0.2:
* Remove most synchronous transactions - faster deletes, fewer chances for null
files after a crash!
* Various error code return fixes
* Restrict inodes to 32 bits on large filesystems (override w/ mount option)
* Fix concurrent file and mmapped I/O
* Fix dbench hangs on low memory systems
* Fix recovery of device special inodes
* Fix mount argument parsing
* Various pagebuf reorganization, simplification, and cleanup
* Fix parallel direct and buffered I/O
* Code merges from irix
* Pagebuf merged into xfs
* Fix out-of-line extended attribute data
* Fix forced shutdown bug that overwrote superblock :(
* Improve memory allocation when not in a transaction
* Limit max file size to something Linux can handle
* Some realtime device fixes (still not complete)
* Clean up xfs_freeze path
* Report filesystem name on duplicate UUID mount failure.
* Shrink xfs inode size
* Fix some direct I/O corner cases
* Fix mount with bad log or realtime device options
* Make "osyncisdsync" the default on xfs filesystems
* Restrict chown to file's owner, or someone w/ the right capability
* Upgrade quota to Jan Kara's 32-bit VFS quota
* fix memory leak in O_DIRECT read path
* Use new reserved ea/acl syscall numbers
* Fix some sparc64 compile problems
* Make xfs superblock coherent with block layer
* Pagebuf use after free fix
* Don't allow quota flag changes on read-only device
* Make xfs metadata accesses refresh pages, keep them in the cache
* Fix sgid inheritence for root
* Correct utime permissions checking
* Reduce xfs log memory usage
* Fix a bug in memory freeing
* Man page updates from Andreas
* Test script updates from Andreas
* Clean up the --default option handling in setfacl. The old
workarounds caused a bug for unusual input.
* Changes to the --test output format setfacl generates: ACLs that
are not changed are now displayed as `*'.
* Fix a bug in setfacl/sequence.c:seq_delete_cmd().
* Minor changes to test scripts
* Apply several patches from Andreas, namely:
* man page fixes
* libacl code reformatting
* acl_from_text errno handling
* Apply Andreas Gruenbacher's diffs.
* Fix up chacl for deletion of access ACL to be in line with Andreas.
* Incorporate the Debian packaging again.
* Reworked to use the new official system call API.
* Sync up with the XFS project, the SGI folk now use this source.
* Jumped to version 2 to allow XFS users to upgrade
(Rationale: the XFS ACL user tools were at version 1.1.X, and
packaging tools like rpm, dpkg, etc. must be presented with a
greater version number to allow an upgrade to proceed).
* Added the chacl command to ease migration for existing XFS users,
and for compatibility with IRIX.
* Added a flag to allow acl_print to produce a single-line ACL, in
addition to the multi-line format.
* Extended attribute documentation has moved into the extended
attribute package from SGI ("attr"), this ACL package now deals
exclusively with ACLs.
* acl_from_text sometimes did not set errno when failing.
* Moved files and simplified #includes in libacl
* Add MIPS/MIPS64 system call numbers
* Fix build for architectures which don't have syscalls yet
* Fix the syscall number used on Sparc for fremovexattr(2)
* Test script updates
* Man page updates
* A minor change to the test/run script
* add in ARM architecture system call numbers
* updates to the test output from Andreas
* add in S/390 system call numbers from Martin Schwidefsky
* revert IA64 syscall numbering after further mail with
David Mosberger (apparently sys_tkill will be moved)
* incorporate several documentation changes from Andreas,
including a script to convert from the aget format of
attribute backup file, to the new getfattr format
* fix IA64 syscall numbering
* initial introduction of the new system call interface
* synced up with the ext2 project, incorporated get/set tools
* new man pages for system calls, getfattr(1) and setfattr(1)
* made the attributes.h interface align properly with IRIX
* The kernel-side of dmapi is now a module, and the device has
moved. Change dmapi to use the dmapi device in its new
location of /proc/fs/xfs_dmapi.
* Fall back to BLKGETSIZE if BLKGETSIZE64 fails
* Sync user/kernel headers and shared code
* Major release to coincide with switch to new extended
attributes system call interfaces
* bumped version of libhandle, added new symbols to use
the reworked extended attributes handle ioctl interface
* xfs_repair in no-modify mode opens the filesystem device
read-only now (fix from Chris Pascoe)
* sync up with recent (minor) changes to shared kernel code
* switch to using the BLKGETSIZE64 ioctl in libxfs, instead
of the (previously busted) BLKGETSIZE ioctl
* fix xfs_repair option parsing for external logs
* add xfs_repair option parsing for realtime device
* fix xfs_repair version (-V) option - should not
require an argument
* add -V option to usage string
* document verbose (-v) and -r options in manpage
* fix mkfs.xfs buglet in overwriting signatures when run
on a regular file
* mkfs.xfs overwrites pre-existing filesystem, swap, or md
* xfs_repair fix to prevent double insertion into the
uncertain_inode AVL trees ("avl_insert: duplicate range")
* xfs_repair fix if the log is corrupted and we can't find
the head, don't exit - just proceed on with zeroing it
* use snprintf instead of sprintf throughout
* added text dump type to xfs_db (mkp)
* removed use of a temporary file in xfs_db when processing
commands on the command line - allows xfs_check to be run
on read-only root filesystems
* reenable the use of the BLKBSZSET ioctl, its baaack
* sync recent XFS kernel source changes back into libxfs
* fix minor debian package version numbering issue
* add documentation for xfs_db(8) label/uuid commands
* automatic inode sizing code in mkfs.xfs has been removed
(restricting inodes to 32 bits) - Steve's recent kernel
changes mean this is no longer an issue
* fix bug in mkfs.xfs size cross-check for realtime device
* rework all code dealing with extended attributes to use
the new system calls (requires attr-2.0.0 or greater)
* also, the attrctl-by-handle ioctl is history, replaced
by libhandle routines - more like what we have in IRIX
(requires xfsprogs-2.0.0 or greater)
* effectively no-op change (cleanup) - switch over to using
XFS_IOC_FSGEOMETRY instead of XFS_IOC_GETFSUUID ioctl, so
we can deprecate that "special" UUID ioctl in the kernel.
* add -q description to xfsdump/xfsrestore man pages and
* change failed bulkstat WARNING to a TRACE message to that
it doesn't bother people.
* avoid a possible assertion failure for cumulative restores
with -B option.
* fix xfsrestore so that cumulative restores (with -r)
will successfully delete removed directories whose
files have also been removed.
Previously, the files weren't removed until later,
which meant that early directory removal failed.
* fix xfsdump so that if an inode# is reused in the time
between building the inode map and pruning the inode map
(in phase 3 when some dirs are marked as not changed),
that it no longer aborts with an assertion failure.
* add new -B option to xfsrestore to correctly assign
ownership and permissions of the dump root directory
to the destination directory
* port back IRIX changes primarily to xfsrestore for
improving performance when one has over a million files
* some extra mlogs (messages) for dump estimates,
dir tree diagnostics, type of dump format being used
* various fixes for restore with multiple threads
and extended attributes (note: multiple threads not
implemented on Linux yet)
* fix xfsdump to endian convert all of the record header
fields properly just prior to writing the header out
(in particular first_mark_offset).
This caused do_next_mark() assertion failures at some
* fix xfsrestore so that it doesn't delete hardlinks
on alternate cumulative restores
* allow xfsdump to exclude files based on whether they have
a certain extended attribute set
* don't include /var/lib/xfsdump in the dump
* Updated documentation.