PNFS fix fallback to MDS if got error on commit to DS
authorOlga Kornievskaia <kolga@netapp.com>
Thu, 30 Mar 2017 14:10:55 +0000 (10:10 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 30 Mar 2017 17:27:20 +0000 (13:27 -0400)
Upong receiving some errors (EACCES) on commit to the DS the code
doesn't fallback to MDS and intead retrieds to the same DS again.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/filelayout/filelayout.c

index 367f8eb19bfa89cc08cb85d4dcab7eab19366b62..c9230fecc77ea1d12ff975173d0b0922eca63ea6 100644 (file)
@@ -202,10 +202,10 @@ static int filelayout_async_handle_error(struct rpc_task *task,
                        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);