XFS Status Updates
XFS status update for June 2009
On June 9th we finally saw the release of Linux 2.6.30. For XFS this release mostly contains the improved ENOSPC handling, but also various smaller bugfixes and lots of cleanups. The code size of XFS decreased again by 500 lines of code in this release.
The Linux 2.6.31 merge opened in the mid of the month and some big XFS changes have been pushed: A removal of the quotaops infrastructure which simplifies the quota implementation, the switch from XFS's own Posix ACL implementation to the generic one shared by various other filesystems which also supports in-memory caching of ACLs and another incremental refactoring of the sync code.
A patch to better track dirty inodes and work around issues in the way the VFS updates the access time stamp on inodes has been reposted and discussed. Another patch to converting the existing XFS tracing infrastructure to use the ftrace even tracer has been posted.
On the userspace side there have been a few updates to xfsprogs, including some repair fixes and a new fallocate command for xfs_io. There were major updates for xfstests: The existing aio-dio-regress testsuite has been merged into xfstests, and various changes went into the tree to make xfstests better suitable for use with other filesystems.
The attr and acl projects which have been traditionally been hosted as part of the XFS userspace utilities have now been split into a separate project maintained by Andreas Gruenbacher, who has been doing most of the work on it, and moved to the Savannah hosting platform.
XFS status update for May 2009
In May Linux 2.6.30 was getting close to be released, and various important XFS fixes made it during the latest release candidates. In the meantime some big patch series to rework the sync code and the inode allocator have been posted for the next merge window.
On the userspace side xfsprogs and xfsdump 3.0.1 were finally released, quickly followed by 3.0.2 releases with updated Debian packaging. After that various small patches that were held back made it into xfsprogs. A patch to add the xfs_reno tool which allows to move inodes around to fit into 32 bit inode number space has been posted which is also one central aspect of future online shrinking support.
There has been major activity on xfstests including adding generic filesystems support to allow running tests that aren't XFS-specific on any Linux filesystems.
XFS status update for April 2009
In April development for Linux 2.6.30 was in full motion. A patchset to correct flushing of delayed allocations with near full filesystems has been committed in early April, as well as various smaller fixes. A patch series to improve the behavior of sys_sync has been posted but is waiting for VFS changes queued for Linux 2.6.31.
On the userspace side xfsprogs and xfsdump 3.0.1 have managed to split their release dates into May again after a lot of last-minute build system updates.
XFS status update for March 2009
Linux 2.6.29 has been released which includes major XFS updates like the new generic btree code, a fully functional 32bit compat ioctl implementation and the new combined XFS and Linux inode. (See previous status reports for more details). A patch series to improve correctness and performance has been posted but not yet applied. Various minor fixes and cleanups have been sent to Linus for 2.6.30 which looks like it will be a minor release for XFS after the big churn in 2.6.29.
On userspace a lot of time has been spent on fixing and improving the build system shared by the various XFS utilities as well as various smaller improvements leading to the xfsprogs and xfsdump 3.0.1 releases which are still outstanding.
XFS status update for February 2009
In February various smaller fixes have been sent to Linus for 2.6.29, including a revert of the faster vmap APIs which don't seem to be quite ready yet on the VM side. At the same time various patches have been queued up for 2.6.30, with another big batch pending. There also has been a repost of the CRC patch series, including support for a new, larger inode core.
SGI released various bits of work in progress from former employees that will be extremely helpful for the future development of XFS, thanks a lot to Mark Goodwin for making this happen.
On the userspace side the long awaited 3.0.0 releases of xfsprogs and xfsdump finally happened early in the month, accompanied by a 2.2.9 release of the dmapi userspace. There have been some issues with packaging so a new minor release might follow soon.
The xfs_irecover tool has been relicensed so that it can be merged into the GPLv2 codebase of xfsprogs, but the actual integration work hasn't happened yet.
Important bits of XFS documentation that have been available on the XFS website in PDF form have been released in the document source form under the Creative Commons license so that they can be updated as a community effort, and checked into a public git tree.
XFS status update for January 2009
January has been an extremely busy month on the userspace front. Many smaller and medium updates went into xfsprogs, xfstests and to a lesser extent xfsdump. xfsprogs and xfsdump are ramping up for getting a 3.0.0 release out in early February which will include the first major re-sync with the kernel code in libxfs, a cleanup of the exported library interfaces and the move of two tools (xfs_fsr and xfs_estimate) from the xfsdump package to xfsprogs. After this the xfsprogs package will contain all tools that use internal libxfs interfaces which fortunately equates to those needed for normal administration. The xfsdump package now only contains the xfsdump/xfsrestore tools needed for backing up and restoring XFS filesystems. In addition it grew a fix to support dump/restore on systems with a 64k page size. A large number of acl/attr package patches was posted to the list, but pending a possible split of these packages from the XFS project these weren't processed yet.
On the kernel side the big excitement in January was an in-memory corruption introduced in the btree refactoring which hit people running 32bit platforms without support for large block devices. This issue was fixed and pushed to the 2.6.29 development tree after a long collaborative debugging effort at linux.conf.au. Besides that about a dozen minor fixes were pushed to 2.6.29 and the first batch of misc patches for the 2.6.30 release cycle was sent out.
At the end of December the SGI group in Melbourne which the previous XFS maintainer and some other developers worked for has been closed down and they will be missed greatly. As a result maintainership has been passed on in a way that has been slightly controversial in the community, and the first patchset of work in progress in Melbourne have been posted to the list to be picked up by others.
The xfs.org wiki has gotten a little facelift on it's front page making it a lot easier to read.
XFS status update for December 2008
On Christmas Eve the 2.6.28 mainline kernel was release, with only minor XFS bug fixes over 2.6.27.
On the development side December has been busy but unspectacular month. All lot of misc fixes and improvements have been sent out, tested and committed especially on the user land side.
XFS status update for November 2008
The mainline kernel is now at 2.6.28-rc6 and includes a small number of XFS fixes. There have been no updates to the XFS development tree during November. Without new regressions that large number of changes that missed 2.6.28 has thus stabilized to be ready for 2.6.29. In the meantime kernel-side development has been slow, with the only major patch set being a wide number of fixes to the compatibility for 32 bit ioctls on a 64 bit kernel.
In the meantime there has been a large number of commits to the user space tree, which mostly consist of smaller fixes. xfsprogs is getting close to have the 3.0.0 release which will be the first full resync with the kernel sources since the year 2005.
XFS status update for October 2008
Linux 2.6.27 released with all the bits covered in last month's report. It did however miss two important fixes for regressions that a few people hit. 22.214.171.124 or later are recommended for use with XFS.
In the meantime the generic btree implementation, the sync reorganization and after a lot of merge pain the XFS and VFS inode unification hit the development tree during the time allocated for the merge window. No XFS updates other than the two regression fixes also in 126.96.36.199 have made it into mainline as of 2.6.28-rc3.
The only new feature on the list in October is support for the fiemap interface that has been added to the VFS during the 2.6.28 merge window. However there was lot of patch traffic consisting of fixes and respun versions of previously known patches. There still is a large backlog of patches on the list that is not applied to the development tree yet.
XFS status update for September 2008
With Linux 2.6.27 still not released but only making slow progress from 2.6.27-rc5 to 2.6.27-rc8 XFS changes in mainline have been minimal in September with only about half a dozen bug fixes patches.
In the meantime the generic btree patch set has been committed to the development tree, but not many other updates yet. On the user space side xfsprogs 2.10.1 has been released on September 5th with a number of important bug fixes. Following the release of xfsprogs 2.10.1 open season for development of the user space code has started. The first full update of the shared kernel / user space code in libxfs since 2005 has been committed. In addition to that the number of headers installed for the regular devel package has been reduced to the required minimum and support for checking the source code for endianess errors using sparse has been added.
The patch sets to unify the XFS and Linux inode structures, and rewrite various bits of the sync code have seen various iterations on the XFS list, but haven't been committed yet. A first set of patches implementing CRCs for various metadata structures has been posted to the list.
XFS status update for August 2008
With the 2.6.27-rc5 release the 2.6.27 cycle is nearing it's end. The major XFS feature in 2.6.27-rc5 is support for case-insensitive file names. At this point it is still limited to 7bit ASCII file names, with updates for utf8 file names expected to follow later. In addition to that 2.6.27-rc5 fixes a long-standing problem with non-EABI arm compiler which pack some XFS data structures wrongly. Besides this 2.6.27-rc5 also contains various cleanups, most notably the removal of the last bhv_vnode_t instances, and most uses of semaphores. As usual the diffstat for XFS from 2.6.26 to 2.6.26-rc5 is negative:
100 files changed, 3819 insertions(+), 4409 deletions(-)
On the user space front a new minor xfsprogs version is about to be released containing various fixes including the user space part of arm packing fix.
Work in progress on the XFS mailing list are a large patch set to unify the alloc, inobt and bmap btree implementation into a single that supports arbitrarily pluggable key and record formats. These btree changes are the first major preparation for adding CRC checks to all metadata structures in XFS, and an even larger patch set to unify the XFS and Linux inode structures, and perform all inode write back from the btree uses instead of an inode cache in XFS.