From: Lachlan McIlroy <lachlan@sgi.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: David Chinner <dgc@sgi.com>, xfs-dev <xfs-dev@sgi.com>,
xfs-oss <xfs@oss.sgi.com>
Subject: Re: review: use correct buffer flags when reading superblock
Date: Fri, 19 Oct 2007 11:32:18 +1000 [thread overview]
Message-ID: <47180922.4040709@sgi.com> (raw)
In-Reply-To: <20071018154649.GA16837@infradead.org>
Christoph Hellwig wrote:
> On Wed, Oct 10, 2007 at 09:25:06PM +1000, David Chinner wrote:
>>> Where are these set up in the first time? AFAICS the buffer only written
>>> out by xfs_unmountfs_writesb, xfs_syncsub and xfs_trans_log_buf, and all
>>> these should only ever happen after log recovery has finished.
>> It can also be written by xfsbufd when it has been bdwrite()
>> or as a result of log tail pushing.
>
> Hmm, true.
>
>> Because the superblock buffer is XBF_FS_MANAGED, it does not get
>> torn down when it is clean and has no references, so the XBF_ASYNC
>> flag never gets cleared unless the fs specifically clears it. If the
>> superblock is then not recovered out of any further transactions
>> during recovery after xfsbufd flushed it, the XBF_ASYNC flag remains
>> set for the re-read that is issued in xlog_do_recover() and we
>> hang.....
>
> Makes sense as an explanation. I still don't really like patch, maybe
> we should always clear the ASYNC flag in the b_iodone callback?
>
That sounds like a good idea. Or get rid of the XBF_FS_MANAGED special
case and get a new fresh buffer each time.
next prev parent reply other threads:[~2007-10-19 1:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-10 8:37 review: use correct buffer flags when reading superblock Lachlan McIlroy
2007-10-10 9:34 ` Christoph Hellwig
2007-10-10 11:25 ` David Chinner
2007-10-18 15:46 ` Christoph Hellwig
2007-10-19 1:32 ` Lachlan McIlroy [this message]
2007-10-19 2:14 ` David Chinner
2007-10-10 11:28 ` David Chinner
2007-10-11 2:42 ` Lachlan McIlroy
2007-10-11 3:30 ` David Chinner
2007-10-11 7:23 ` 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=47180922.4040709@sgi.com \
--to=lachlan@sgi.com \
--cc=dgc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.