[Announce] XFS for Linux 1.1 Released

Eric Sandeen (sandeen@sgi.com)
Wed, 17 Apr 2002 17:07:40 -0500


SGI is pleased to announce the 1.1 release of XFS for Linux.

Major improvements in this release include:
* Faster deletes
* Significantly reduced "null-file-after-crash" occurrences
* New reserved Extended Attribute syscall interface
* Restrict inodes to 32 bits on large filesystems

More information can be found at
http://oss.sgi.com/projects/xfs/1.1_release.html

Files are available under
ftp://oss.sgi.com/projects/xfs/download/Release-1.1/

This URL contains the following directories:

kernel_rpms/linux-2.4.18/

2.4.18 kernel RPMS based on vanilla 2.4.18 kernels (Linus' tree)
with the XFS bits added.

kernel_rpms/2.4.9-31/

2.4.9-31 kernel RPMS based on Red Hat's 7.1/7.2 2.4.9-31 kernel
release. Please not that these are NOT Red Hat kernels, and are in
no way supported by Red Hat.

kernel_patches/

The patches provided are for linux-2.4.18, for both x86 and ia64.

See the README file in the patches/ directory for patching
instructions.

cmd_tars/
cmd_rpms/

Userspace commands are provided both as tarballs and as RPMs.

CHANGES since 1.0.2:
====================

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 --------------- * 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. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/