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