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:
parent
4aece6a19c
commit
281fe15dc1
@ -521,6 +521,14 @@ static unsigned encode_cb_sequence_res(struct svc_rqst *rqstp,
|
||||
static __be32
|
||||
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) {
|
||||
case OP_CB_GETATTR:
|
||||
case OP_CB_RECALL:
|
||||
|
Loading…
Reference in New Issue
Block a user