nfs41: verify CB_SEQUENCE position in callback compound
CB_SEQUENCE must appear first in the callback compound RPC. If it is not the first operation NFS4ERR_SEQUENCE_POS must be returned. If the first operation ni the CB_COMPOUND is not CB_SEQUENCE then NFS4ERR_OP_NOT_IN_SESSION must be returned. Signed-off-by: Ricardo Labiaga <ricardo.labiaga@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> [nfs41: refactor op preprocessing out of process_op] Signed-off-by: Benny Halevy <bhalevy@panasas.com>
This commit is contained in:
@@ -521,6 +521,14 @@ out:
|
|||||||
static __be32
|
static __be32
|
||||||
preprocess_nfs41_op(int nop, unsigned int op_nr, struct callback_op **op)
|
preprocess_nfs41_op(int nop, unsigned int op_nr, struct callback_op **op)
|
||||||
{
|
{
|
||||||
|
if (op_nr == OP_CB_SEQUENCE) {
|
||||||
|
if (nop != 0)
|
||||||
|
return htonl(NFS4ERR_SEQUENCE_POS);
|
||||||
|
} else {
|
||||||
|
if (nop == 0)
|
||||||
|
return htonl(NFS4ERR_OP_NOT_IN_SESSION);
|
||||||
|
}
|
||||||
|
|
||||||
switch (op_nr) {
|
switch (op_nr) {
|
||||||
case OP_CB_GETATTR:
|
case OP_CB_GETATTR:
|
||||||
case OP_CB_RECALL:
|
case OP_CB_RECALL:
|
||||||
|
Reference in New Issue
Block a user