[PATCH] xfs: check for stale inode before acquiring iflock on push
Mark Tinguely
tinguely at sgi.com
Mon Jun 11 13:39:28 CDT 2012
On 06/11/12 09:39, Brian Foster wrote:
> An inode in the AIL can be flush locked and marked stale if
> a cluster free transaction occurs at the right time. The
> inode item is then marked as flushing, which causes xfsaild
> to spin and leaves the filesystem stalled. This is
> reproduced by running xfstests 273 in a loop for an
> extended period of time.
>
> Check for stale inodes before the flush lock. This marks
> the inode as pinned, leads to a log flush and allows the
> filesystem to proceed.
>
> Signed-off-by: Brian Foster<bfoster at redhat.com>
> ---
>
> This patch resolves the stall I was reproducing with the 273 loop test.
> I repeated the test pretty much throughout the weekend. I still hit one
> hung task timeout message, but the test proceeded through it.
>
> Dave, I know you mentioned you were sending a similar patch. Either you
> didn't get to it or I missed it, but here's what I've been testing....
>
> Brian
>
Still hangs right away on Linux 3.5rc1 using a very small log and the
perl test program.
I will investigate more.
Darn, the printk routines in Linux 3.5 added a "struct log" and crash is
finding that definition.
--Mark.
More information about the xfs
mailing list