]> git.baikalelectronics.ru Git - kernel.git/commit
[XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many
authorDavid Chinner <dgc@sgi.com>
Thu, 6 Mar 2008 02:45:10 +0000 (13:45 +1100)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Thu, 6 Mar 2008 05:38:17 +0000 (16:38 +1100)
commit0e91adb9fa26a7b3037982678e1a5fa593e6df0d
tree972a8e148775ec20358f6e59a01807417be9b7a1
parentc1d9fd29fe6d1e6248e04e570a6c9d58e81e4cab
[XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many
wakeups

Idle state is not being detected properly by the xfsaild push code. The
current idle state is detected by an empty list which may never happen
with mostly idle filesystem or one using lazy superblock counters. A
single dirty item in the list that exists beyond the push target can
result repeated looping attempting to push up to the target because it
fails to check if the push target has been acheived or not.

Fix by considering a dirty list with everything past the target as an idle
state and set the timeout appropriately.

SGI-PV: 977545
SGI-Modid: xfs-linux-melb:xfs-kern:30532a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/xfs_trans_ail.c