]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - fs/nfs/nfs4xdr.c
NFS: use scope from exchange_id to skip reclaim
[linux-imx.git] / fs / nfs / nfs4xdr.c
index e6e8f3b9a1dea29908a5179a38293dfbefce0ad8..1555c74dd33678e248aca23ab454ffe74832d17d 100644 (file)
@@ -4977,11 +4977,17 @@ static int decode_exchange_id(struct xdr_stream *xdr,
        if (unlikely(status))
                return status;
 
-       /* Throw away server_scope */
+       /* Save server_scope */
        status = decode_opaque_inline(xdr, &dummy, &dummy_str);
        if (unlikely(status))
                return status;
 
+       if (unlikely(dummy > NFS4_OPAQUE_LIMIT))
+               return -EIO;
+
+       memcpy(res->server_scope->server_scope, dummy_str, dummy);
+       res->server_scope->server_scope_sz = dummy;
+
        /* Throw away Implementation id array */
        status = decode_opaque_inline(xdr, &dummy, &dummy_str);
        if (unlikely(status))