lkml.org 
[lkml]   [2017]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.12 152/196] PNFS fix EACCESS on commit to DS handling
    Date
    4.12-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Olga Kornievskaia <kolga@netapp.com>

    commit a0bc01e0f1fa39702b5244b3bac699bea0d4f413 upstream.

    Commit fabbbee0eb0f "PNFS fix fallback to MDS if got error on
    commit to DS" moved the pnfs_set_lo_fail() to unhandled errors
    which was not correct and lead to a kernel oops on umount.

    Instead, fix the original EACCESS on commit to DS error by
    getting the new layout and re-doing the IO.

    Fixes: fabbbee0eb0f ("PNFS fix fallback to MDS if got error on commit to DS")
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/nfs/filelayout/filelayout.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/fs/nfs/filelayout/filelayout.c
    +++ b/fs/nfs/filelayout/filelayout.c
    @@ -172,6 +172,7 @@ static int filelayout_async_handle_error
    case -NFS4ERR_RETRY_UNCACHED_REP:
    break;
    /* Invalidate Layout errors */
    + case -NFS4ERR_ACCESS:
    case -NFS4ERR_PNFS_NO_LAYOUT:
    case -ESTALE: /* mapped NFS4ERR_STALE */
    case -EBADHANDLE: /* mapped NFS4ERR_BADHANDLE */
    @@ -202,10 +203,10 @@ static int filelayout_async_handle_error
    task->tk_status);
    nfs4_mark_deviceid_unavailable(devid);
    pnfs_error_mark_layout_for_return(inode, lseg);
    + pnfs_set_lo_fail(lseg);
    rpc_wake_up(&tbl->slot_tbl_waitq);
    /* fall through */
    default:
    - pnfs_set_lo_fail(lseg);
    reset:
    dprintk("%s Retry through MDS. Error %d\n", __func__,
    task->tk_status);

    \
     
     \ /
      Last update: 2017-07-25 21:29    [W:5.661 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site