Fix the NFSv4 client hndling of a stale write verifier in the Commit operation.

When the NFSv4 client Commit operation encountered a stale write verifier,
it erroneously mapped that to EIO. This could have caused recently written
data to be lost when a server crashes/reboots between an UNSTABLE write
and the subsequent commit. This patch fixes this.
The bug was only for the NFSv4 client and did not affect NFSv3.

Tested by:	cperciva
PR:		215887
MFC after:	2 weeks
This commit is contained in:
rmacklem 2017-04-09 21:50:21 +00:00
parent 312221b809
commit ca4e7073d6

View File

@ -1196,7 +1196,7 @@ nfscl_maperr(struct thread *td, int error, uid_t uid, gid_t gid)
{
struct proc *p;
if (error < 10000)
if (error < 10000 || error >= NFSERR_STALEWRITEVERF)
return (error);
if (td != NULL)
p = td->td_proc;