diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/nfs/filelayout/filelayout.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c index 1cf85d65b748..3e486cd01caf 100644 --- a/fs/nfs/filelayout/filelayout.c +++ b/fs/nfs/filelayout/filelayout.c @@ -172,6 +172,7 @@ static int filelayout_async_handle_error(struct rpc_task *task,  	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(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);  | 
