This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-next has been updated 9a57fa8 xfs: wait for the write the superblock on unmount 8375f92 xfs: re-enable xfsaild idle mode and fix associated races 4f59af7 xfs: remove iolock lock classes 5a15322 xfs: avoid the iolock in xfs_free_eofblocks for evicted inodes 0b56185 xfs: do not take the iolock in xfs_inactive fe67be0 xfs: remove xfs_inactive_attrs b373e98 xfs: clean up xfs_inactive be60fe5 xfs: do not read the AGI buffer in xfs_dialloc until nessecary 55d6af6 xfs: refactor xfs_ialloc_ag_select 4bb6106 xfs: add a short cut to xfs_dialloc for the non-NULL agbp case 0835890 xfs: remove the alloc_done argument to xfs_dialloc f2ecc5e xfs: split xfs_dialloc from 824c313139c2ce678011bf11c4823a0c99651c1f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9a57fa8ee7c29e11c2a29ce058573ba99157eda7 Author: Mark Tinguely <tinguely@xxxxxxx> Date: Tue Jul 24 10:59:19 2012 -0500 xfs: wait for the write the superblock on unmount v2: Add the xfs_buf_lock to xfs_quiesce_attr(). Add explaination why xfs_buf_lock() is used to wait for write. xfs_wait_buftarg() does not wait for the completion of the write of the uncached superblock. This write can race with the shutdown of the log and causes a panic if the write does not win the race. During the log write, xfsaild_push() will lock the buffer and set the XBF_ASYNC flag. Because the XBF_FLAG is set, complete() is not performed on the buffer's iowait entry, we cannot call xfs_buf_iowait() to wait for the write to complete. The buffer's lock is held until the write is complete, so we can block on a xfs_buf_lock() request to be notified that the write is complete. Signed-off-by: Mark Tinguely <tinguely@xxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 8375f922aaa6e7a880022529202fb486315568c3 Author: Brian Foster <bfoster@xxxxxxxxxx> Date: Thu Jun 28 06:52:56 2012 -0400 xfs: re-enable xfsaild idle mode and fix associated races xfsaild idle mode logic currently leads to a couple hangs: 1.) If xfsaild is rescheduled in during an incremental scan (i.e., tout != 0) and the target has been updated since the previous run, we can hit the new target and go into idle mode with a still populated ail. 2.) A wake up is only issued when the target is pushed forward. The wake up can race with xfsaild if it is currently in the process of entering idle mode, causing future wake up events to be lost. These hangs have been reproduced and verified as fixed by running xfstests 273 in a loop on a slightly modified upstream kernel. The kernel is modified to re-enable idle mode as previously implemented (when count == 0) and with a revert of commit 670ce93f, which includes performance improvements that make this harder to reproduce. The solution, the algorithm for which has been outlined by Dave Chinner, is to modify xfsaild to enter idle mode only when the ail is empty and the push target has not been moved forward since the last push. Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 4f59af758f9092bc7b266ca919ce6067170e5172 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 11:13:33 2012 -0400 xfs: remove iolock lock classes Content-Disposition: inline; filename=xfs-remove-iolock-classes Now that we never take the iolock during inode reclaim we don't need to play games with lock classes. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Rich Johnston <rjohnston@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 5a15322da1a51ad8f3af1962de355885b6c606f2 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 11:13:32 2012 -0400 xfs: avoid the iolock in xfs_free_eofblocks for evicted inodes Same rational as the last patch - these inodes are not reachable, so don't bother with locking. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Rich Johnston <rjohnston@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 0b56185b0d64ef89dad1c85bb7403fa762cbe50d Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 11:13:31 2012 -0400 xfs: do not take the iolock in xfs_inactive An inode that enters xfs_inactive has been removed from all global lists but the inode hash, and can't be recycled in xfs_iget before it has been marked reclaimable. Thus taking the iolock in here is not nessecary at all, and given the amount of lockdep false positives it has triggered already I'd rather remove the locking. The only change outside of xfs_inactive is relaxing an assert in xfs_itruncate_extents. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Rich Johnston <rjohnston@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit fe67be036ff2f713b1c5f24dd4cdffae75bcb97a Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 11:13:30 2012 -0400 xfs: remove xfs_inactive_attrs Remove this helper as the code flow is a lot more obvious when it gets merged into its only caller. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Rich Johnston <rjohnston@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit b373e98daa70d7ddb10f53f81e711c4d17651795 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 11:13:29 2012 -0400 xfs: clean up xfs_inactive The code to reserve log space and join the inode to the transaction is common for all cases, so don't duplicate it. Also remove the trivial xfs_inactive_symlink_local helper which can simply be opencode now. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Rich Johnston <rjohnston@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit be60fe54b216a62403b816d3930a66ad7c51cbc6 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 10:54:50 2012 -0400 xfs: do not read the AGI buffer in xfs_dialloc until nessecary Refactor the AG selection loop in xfs_dialloc to operate on the in-memory perag data as much as possible. We only read the AGI buffer once we have selected an AG to allocate inodes now instead of for every AG considered. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Mark Tinguely <tinguely@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 55d6af64cb8bf8c7e9a84b254d2c3479be8c067c Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 10:54:49 2012 -0400 xfs: refactor xfs_ialloc_ag_select Loop over the in-core perag structures and prefer using pagi_freecount over going out to the AGI buffer where possible. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Mark Tinguely <tinguely@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 4bb61069d2019dea2a7e4e0f4432101f03a9b820 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 10:54:48 2012 -0400 xfs: add a short cut to xfs_dialloc for the non-NULL agbp case In this case we already have selected an AG and know it has free space beause the buffer lock never got released. Jump directly into xfs_dialloc_ag and short cut the AG selection loop. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Mark Tinguely <tinguely@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit 08358906ed78f6ab4d3ff8e4fd1b87b9a4aea645 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 10:54:47 2012 -0400 xfs: remove the alloc_done argument to xfs_dialloc We can simplify check the IO_agbp pointer for being non-NULL instead of passing another argument through two layers of function calls. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Mark Tinguely <tinguely@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> commit f2ecc5e453134a13c3b2b0f2cac52ab2d5c540d7 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Wed Jul 4 10:54:46 2012 -0400 xfs: split xfs_dialloc Move the actual allocation once we have selected an allocation group into a separate helper, and make xfs_dialloc a wrapper around it. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Ben Myers <bpm@xxxxxxx> Signed-off-by: Ben Myers <bpm@xxxxxxx> ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_ialloc.c | 437 ++++++++++++++++++++++++----------------------- fs/xfs/xfs_ialloc.h | 2 - fs/xfs/xfs_iget.c | 15 -- fs/xfs/xfs_inode.c | 9 +- fs/xfs/xfs_inode.h | 4 +- fs/xfs/xfs_mount.c | 9 + fs/xfs/xfs_super.c | 18 +- fs/xfs/xfs_sync.c | 9 + fs/xfs/xfs_trans_ail.c | 35 +++- fs/xfs/xfs_trans_priv.h | 1 + fs/xfs/xfs_utils.c | 17 +- fs/xfs/xfs_vnodeops.c | 275 +++++++++-------------------- 12 files changed, 365 insertions(+), 466 deletions(-) hooks/post-receive -- XFS development tree _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs