<& xfsTemplate,top=>1,side=>1 &>

XFS for Linux Release 1.1 Change Log

The following changes have been made to XFS for Linux for the 1.1 release.

Kernel

Removed 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)
Fixed concurrent file and mmapped I/O
Fixed dbench hangs on low memory systems
Fixed recovery of device special inodes
Fixed mount argument parsing
Various pagebuf reorganization, simplification, and cleanup
Fixed parallel direct and buffered I/O
Code merges from IRIX
Pagebuf merged into xfs
Fixed out-of-line extended attribute data
Fixed forced shutdown bug that overwrote superblock :(
Improved memory allocation when not in a transaction
Limit max file size to something Linux can handle
Some realtime device fixes (still not complete)
Cleaned up xfs_freeze path
Report filesystem name on duplicate UUID mount failure
Shrink xfs inode size
Fixed some direct I/O corner cases
Fixed 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
Upgraded quota to Jan Kara's 32-bit VFS quota
Fixed memory leak in O_DIRECT read path
Use new reserved ea/acl syscall numbers
Fixed 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
Fixed sgid inheritence for root
Corrected utime permissions checking
Reduced xfs log memory usage
Fixed a bug in memory freeing
Delete nfs refcache sbdirty timer on unmount
Make nfs refcache sbdirty timer for each fs, not global
Fix for inode32 mount option on > 1TB filesystems

acl

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 `*'.
Fixed 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
Applied Andreas Gruenbacher's diffs
Fixed up chacl for deletion of access ACL to be in line with Andreas
Incorporated 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

attr

Add MIPS/MIPS64 system call numbers
Fixed build for architectures which don't have syscalls yet
Fixed the syscall number used on Sparc for fremovexattr(2)
Test script updates
Man page updates
A minor change to the test/run script
Added in ARM architecture system call numbers
Updates to the test output from Andreas
Added 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) See: https://external-lists.valinux.com/archives/linux-ia64/2002-February/002990.html
Incorporated several documentation changes from Andreas, including a script to convert from the aget format of attribute backup file, to the new getfattr format
Fixed 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

DMAPI

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.

xfsprogs

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
Fixed xfs_repair option parsing for external logs
Added xfs_repair option parsing for realtime device
Fixed xfs_repair version (-V) option - should not require an argument
Added -V option to usage string
Document verbose (-v) and -r options in manpage
Fixed mkfs.xfs buglet in overwriting signatures when run on a regular file
mkfs.xfs overwrites pre-existing filesystem, swap, or md driver signatures.
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
Fixed minor debian package version numbering issue
Added 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
Fixed bug in mkfs.xfs size cross-check for realtime device

xfsdump/restore

Allow dumps of files greater than 231-1 bytes.
Reworked all code dealing with extended attributes to use the new system calls (requires attr-2.0.0 or greater)
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.
Added -q description to xfsdump/xfsrestore man pages and usage text.
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.
Fixed 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. SGI bug#844219.
Fixed 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. SGI bug#846374.
Added new -B option to xfsrestore to correctly assign ownership and permissions of the dump root directory to the destination directory
Ported 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 sites.
Fixed 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

misc

Updated documentation.
<& xfsTemplate,bottom=>1 &>