Eric Sandeen wrote:
> Tim mentioned something about the code in xfs_buf_iodone_work()
> which detects barrier failures post-mount, as added in commit
> 0bfefc46dc028df60120acdb92062169c9328769,
> [XFS] Barriers need to be dynamically checked and switched off
>
> if ((bp->b_error == EOPNOTSUPP) &&
> (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) ==
> (XBF_ORDERED|XBF_ASYNC)) {
> XB_TRACE(bp, "ordered_retry", bp->b_iodone);
> bp->b_flags &= ~XBF_ORDERED;
> bp->b_flags |= _XFS_BARRIER_FAILED;
> ...
>
> but it seems that nothing ever sets EOPNOTSUPP on b_error, so
> this path would never be hit.
>
> I think that we need to do something like below, totally untested,
> to ensure that bio errors get set on b_error, if we're looking
> for them by name, no?
oh, heh, Tim had mentioned that Lachlan suggested this same thing on irc
yesterday, but somehow I had forgotten or totally missed that... didn't
mean to usurp Lachlan :)
-Eric
|