|
@@ -1663,6 +1663,14 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
|
|
|
readbytes += nfsd4_max_reply(argp->rqstp, op);
|
|
readbytes += nfsd4_max_reply(argp->rqstp, op);
|
|
|
} else
|
|
} else
|
|
|
max_reply += nfsd4_max_reply(argp->rqstp, op);
|
|
max_reply += nfsd4_max_reply(argp->rqstp, op);
|
|
|
|
|
+ /*
|
|
|
|
|
+ * OP_LOCK may return a conflicting lock. (Special case
|
|
|
|
|
+ * because it will just skip encoding this if it runs
|
|
|
|
|
+ * out of xdr buffer space, and it is the only operation
|
|
|
|
|
+ * that behaves this way.)
|
|
|
|
|
+ */
|
|
|
|
|
+ if (op->opnum == OP_LOCK)
|
|
|
|
|
+ max_reply += NFS4_OPAQUE_LIMIT;
|
|
|
|
|
|
|
|
if (op->status) {
|
|
if (op->status) {
|
|
|
argp->opcnt = i+1;
|
|
argp->opcnt = i+1;
|