linux/fs/xfs
Dave Chinner ea35a20021 xfs: exit AIL push work correctly when AIL is empty
The recent conversion of the xfsaild functionality to a work queue
introduced a hard-to-hit log space grant hang. The main cause is a
regression where a work exit path fails to clear the PUSHING state
and recheck the target correctly.

Make both exit paths do the same PUSHING bit clearing and target
checking when the "no more work to be done" condition is hit.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
2011-05-09 12:17:03 -05:00
..
linux-2.6 xfs: ensure reclaim cursor is reset correctly at end of AG 2011-05-09 12:17:03 -05:00
quota Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs 2011-04-11 15:48:57 -07:00
support xfs: kill support/debug.[ch] 2011-03-07 10:09:35 +11:00
Kconfig
Makefile Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs 2011-03-21 14:24:56 -07:00
xfs_acl.h
xfs_ag.h xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_alloc_btree.c xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_alloc_btree.h
xfs_alloc.c xfs: reduce the number of pagb_lock roundtrips in xfs_alloc_clear_busy 2011-04-28 13:18:09 -05:00
xfs_alloc.h xfs: reduce the number of pagb_lock roundtrips in xfs_alloc_clear_busy 2011-04-28 13:18:09 -05:00
xfs_arch.h
xfs_attr_leaf.c
xfs_attr_leaf.h
xfs_attr_sf.h
xfs_attr.c
xfs_attr.h
xfs_bit.c
xfs_bit.h
xfs_bmap_btree.c
xfs_bmap_btree.h
xfs_bmap.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_bmap.h
xfs_btree_trace.c
xfs_btree_trace.h
xfs_btree.c
xfs_btree.h
xfs_buf_item.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_buf_item.h
xfs_da_btree.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_da_btree.h
xfs_dfrag.c xfs: cleanup duplicate initializations 2011-04-28 13:25:29 -05:00
xfs_dfrag.h
xfs_dinode.h
xfs_dir2_block.c
xfs_dir2_block.h
xfs_dir2_data.c
xfs_dir2_data.h
xfs_dir2_leaf.c
xfs_dir2_leaf.h
xfs_dir2_node.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_dir2_node.h
xfs_dir2_sf.c
xfs_dir2_sf.h
xfs_dir2.c xfs: convert xfs_fs_cmn_err to new error logging API 2011-03-07 10:05:35 +11:00
xfs_dir2.h
xfs_error.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_error.h xfs: kill support/debug.[ch] 2011-03-07 10:09:35 +11:00
xfs_extfree_item.c
xfs_extfree_item.h
xfs_filestream.c
xfs_filestream.h
xfs_fs.h
xfs_fsops.c xfs: convert xfs_fs_cmn_err to new error logging API 2011-03-07 10:05:35 +11:00
xfs_fsops.h
xfs_ialloc_btree.c
xfs_ialloc_btree.h
xfs_ialloc.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_ialloc.h
xfs_iget.c
xfs_inode_item.c xfs: cleanup duplicate initializations 2011-04-28 13:25:29 -05:00
xfs_inode_item.h
xfs_inode.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_inode.h Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_inum.h
xfs_iomap.c xfs: rename xfs_cmn_err_fsblock_zero() 2011-03-07 10:06:35 +11:00
xfs_iomap.h
xfs_itable.c xfs: fix variable set but not used warnings 2011-04-08 08:09:12 -05:00
xfs_itable.h
xfs_log_cil.c xfs: reduce the number of pagb_lock roundtrips in xfs_alloc_clear_busy 2011-04-28 13:18:09 -05:00
xfs_log_priv.h xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_log_recover.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_log_recover.h
xfs_log.c xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_log.h xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_mount.c xfs: cleanup duplicate initializations 2011-04-28 13:25:29 -05:00
xfs_mount.h xfs: introduce background inode reclaim work 2011-04-08 12:45:07 +10:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_quota.h xfs: Convert xlog_warn to new logging interface 2011-03-07 10:01:35 +11:00
xfs_rename.c
xfs_rtalloc.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_rtalloc.h xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_rw.c xfs: Convert remaining cmn_err() callers to new API 2011-03-07 10:08:35 +11:00
xfs_rw.h
xfs_sb.h
xfs_trans_ail.c xfs: exit AIL push work correctly when AIL is empty 2011-05-09 12:17:03 -05:00
xfs_trans_buf.c xfs: xfs_trans_read_buf() should return an error on failure 2011-03-26 09:14:44 +11:00
xfs_trans_extfree.c
xfs_trans_inode.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_trans_priv.h xfs: push the AIL from memory reclaim and periodic sync 2011-04-08 12:45:07 +10:00
xfs_trans_space.h
xfs_trans.c xfs: reduce the number of pagb_lock roundtrips in xfs_alloc_clear_busy 2011-04-28 13:18:09 -05:00
xfs_trans.h xfs: more sensible inode refcounting for ialloc 2011-02-22 20:32:28 -06:00
xfs_types.h xfs: exact busy extent tracking 2011-04-28 13:18:04 -05:00
xfs_utils.c
xfs_utils.h
xfs_vnodeops.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xfs_vnodeops.h xfs: preallocation transactions do not need to be synchronous 2011-03-26 09:13:08 +11:00
xfs.h