diff options
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 75ab7622e0cc..7b9316406930 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -1505,6 +1505,13 @@ static void nfs_writeback_result(struct rpc_task *task, | |||
1505 | task->tk_status = -EIO; | 1505 | task->tk_status = -EIO; |
1506 | return; | 1506 | return; |
1507 | } | 1507 | } |
1508 | |||
1509 | /* For non rpc-based layout drivers, retry-through-MDS */ | ||
1510 | if (!task->tk_ops) { | ||
1511 | hdr->pnfs_error = -EAGAIN; | ||
1512 | return; | ||
1513 | } | ||
1514 | |||
1508 | /* Was this an NFSv2 write or an NFSv3 stable write? */ | 1515 | /* Was this an NFSv2 write or an NFSv3 stable write? */ |
1509 | if (resp->verf->committed != NFS_UNSTABLE) { | 1516 | if (resp->verf->committed != NFS_UNSTABLE) { |
1510 | /* Resend from where the server left off */ | 1517 | /* Resend from where the server left off */ |