From: Lachlan McIlroy <lachlan@sgi.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: xfs-dev <xfs-dev@sgi.com>, xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH] Prevent log tail pushing from blocking on buffer locks
Date: Thu, 24 Jul 2008 15:47:52 +1000 [thread overview]
Message-ID: <48881788.7010709@sgi.com> (raw)
In-Reply-To: <20080723112154.GA17338@infradead.org>
Christoph Hellwig wrote:
> On Tue, Jul 22, 2008 at 04:32:27PM +1000, Lachlan McIlroy wrote:
>> This changes xfs_inode_item_push() to use XFS_IFLUSH_ASYNC_NOBLOCK when
>> flushing an inode so the flush wont block on inode cluster buffer lock.
>> Also change the prototype of the IOP_PUSH operation so that xfsaild_push()
>> can bump it's stuck count.
>>
>> This change was prompted by a deadlock that would only occur on a debug
>> XFS where a thread creating an inode had the buffer locked and was trying
>> to allocate space for the inode tracing facility. That recursed back into
>> the filesystem to flush data which created a transaction and needed log
>> space which wasn't available.
>
> The stuck propagation looks good, but I don't think this should be
> blindly done for all errors. The only error where it makes sense is
> the EAGAIN from xfs_iflush. All other returns inside the item_push
> handlers basically indicate filesystem corruption.
Good point. Regardless of the error it's still an item that could not
be pushed and is effectively 'stuck'. What do you recommend I do for
other errors? Shutdown the filesystem?
next prev parent reply other threads:[~2008-07-24 5:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-22 6:32 [PATCH] Prevent log tail pushing from blocking on buffer locks Lachlan McIlroy
2008-07-23 11:21 ` Christoph Hellwig
2008-07-24 5:47 ` Lachlan McIlroy [this message]
2008-07-24 5:45 ` Christoph Hellwig
2008-07-24 11:41 ` Dave Chinner
2008-07-25 1:32 ` Lachlan McIlroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48881788.7010709@sgi.com \
--to=lachlan@sgi.com \
--cc=hch@infradead.org \
--cc=xfs-dev@sgi.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox