On Fri, Aug 29, 2014 at 11:12:36AM +1000, Dave Chinner wrote:
> > This is a large change of behavior as it doesn't hit the error
> > path after the xfs_buf_iowait anymore. While I don't think that
> > that path was entirely correct this version seems to be even less so
> > by not releasing the buffer reference or forcing the shutdown.
>
> The IO is synchronous, so the previous behaviour did not release
> the buffer here. But, yes, it needs to because we're not running the
> io wait on it anymore. And this happens only during a shutdown, so i
> don't see any need to trigger a shutdown ;)
>
> As it is, I think this gets properly fixed by the next patch....
Do you have any scenario that might actually exercise this path? I
enabled xfs_trans_read_buf_io trace events and run xfstests as well
as a few other workloads and couldn't hit it at all. And when you
think of it: when would be do a trans_get_buf, then not actually
updating it with data and then recurse into a trans_read_buf in
the same transaction?
Maybe it's just time do a bit more of an audit and put this whole
code path to rest.
|