[LWN Logo]
[LWN.net]
From:	 Eric Sandeen <sandeen@sgi.com>
To:	 linux-kernel@vger.kernel.org
Subject: [Announce] XFS for Linux 1.1 Released
Date:	 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/