struct nfs42_write_res *res)
 {
        __be32 *p;
-       int stateids;
 
        p = xdr_inline_decode(xdr, 4 + 8 + 4);
        if (unlikely(!p))
                goto out_overflow;
 
-       stateids = be32_to_cpup(p++);
+       /*
+        * We never use asynchronous mode, so warn if a server returns
+        * a stateid.
+        */
+       if (unlikely(*p != 0)) {
+               pr_err_once("%s: server has set unrequested "
+                               "asynchronous mode\n", __func__);
+               return -EREMOTEIO;
+       }
+       p++;
        p = xdr_decode_hyper(p, &res->count);
        res->verifier.committed = be32_to_cpup(p);
        return decode_verifier(xdr, &res->verifier.verifier);