lkml.org 
[lkml]   [2012]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[020/129] pnfs-obj: pNFS errors are communicated on iodata->pnfs_error
    3.2-stable review patch.  If anyone has any objections, please let me know.

    ------------------
    Content-Length: 1318
    Lines: 43

    From: Boaz Harrosh <bharrosh@panasas.com>

    commit 5c0b4129c07b902b27d3f3ebc087757f534a3abd upstream.

    Some time along the way pNFS IO errors were switched to
    communicate with a special iodata->pnfs_error member instead
    of the regular RPC members. But objlayout was not switched
    over.

    Fix that!
    Without this fix any IO error is hanged, because IO is not
    switched to MDS and pages are never cleared or read.

    [Applies to 3.2.0. Same bug different patch for 3.1/0 Kernels]
    Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    fs/nfs/objlayout/objlayout.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/fs/nfs/objlayout/objlayout.c
    +++ b/fs/nfs/objlayout/objlayout.c
    @@ -254,6 +254,8 @@ objlayout_read_done(struct objlayout_io_
    oir->status = rdata->task.tk_status = status;
    if (status >= 0)
    rdata->res.count = status;
    + else
    + rdata->pnfs_error = status;
    objlayout_iodone(oir);
    /* must not use oir after this point */

    @@ -334,6 +336,8 @@ objlayout_write_done(struct objlayout_io
    if (status >= 0) {
    wdata->res.count = status;
    wdata->verf.committed = oir->committed;
    + } else {
    + wdata->pnfs_error = status;
    }
    objlayout_iodone(oir);
    /* must not use oir after this point */



    \
     
     \ /
      Last update: 2012-01-24 03:45    [W:4.434 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site