xfs
[Top] [All Lists]

Re: [PATCH, RFC] - set b_error from bio error in xfs_buf_bio_end_io

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: Re: [PATCH, RFC] - set b_error from bio error in xfs_buf_bio_end_io
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Thu, 04 Dec 2008 21:59:09 -0600
In-reply-to: <4938A4C1.9010401@xxxxxxxxxxx>
References: <4938A4C1.9010401@xxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.18 (Macintosh/20081105)
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

<Prev in Thread] Current Thread [Next in Thread>