nfsv4.1 Add FREE_STATEID operation

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
master
Ronnie Sahlberg 2020-06-08 13:14:21 +10:00
parent 0971e9531f
commit a18aff5e7a
3 changed files with 59 additions and 0 deletions

View File

@ -2675,6 +2675,26 @@ zdr_DESTROY_SESSION4res (ZDR *zdrs, DESTROY_SESSION4res *objp)
return TRUE;
}
uint32_t
zdr_FREE_STATEID4args (ZDR *zdrs, FREE_STATEID4args *objp)
{
if (!zdr_stateid4 (zdrs, &objp->fsa_stateid))
return FALSE;
return TRUE;
}
uint32_t
zdr_FREE_STATEID4res (ZDR *zdrs, FREE_STATEID4res *objp)
{
if (!zdr_nfsstat4 (zdrs, &objp->fsr_status))
return FALSE;
return TRUE;
}
uint32_t
zdr_ILLEGAL4res (ZDR *zdrs, ILLEGAL4res *objp)
{
@ -2841,6 +2861,10 @@ zdr_nfs_argop4 (ZDR *zdrs, nfs_argop4 *objp)
if (!zdr_DESTROY_SESSION4args (zdrs, &objp->nfs_argop4_u.opdestroysession))
return FALSE;
break;
case OP_FREE_STATEID:
if (!zdr_FREE_STATEID4args (zdrs, &objp->nfs_argop4_u.opfreestateid))
return FALSE;
break;
case OP_ILLEGAL:
break;
default:
@ -3009,6 +3033,10 @@ zdr_nfs_resop4 (ZDR *zdrs, nfs_resop4 *objp)
if (!zdr_DESTROY_SESSION4res (zdrs, &objp->nfs_resop4_u.opdestroysession))
return FALSE;
break;
case OP_FREE_STATEID:
if (!zdr_FREE_STATEID4res (zdrs, &objp->nfs_resop4_u.opfreestateid))
return FALSE;
break;
case OP_ILLEGAL:
if (!zdr_ILLEGAL4res (zdrs, &objp->nfs_resop4_u.opillegal))
return FALSE;

View File

@ -1326,6 +1326,16 @@ struct DESTROY_SESSION4res {
};
typedef struct DESTROY_SESSION4res DESTROY_SESSION4res;
struct FREE_STATEID4args {
stateid4 fsa_stateid;
};
typedef struct FREE_STATEID4args FREE_STATEID4args;
struct FREE_STATEID4res {
nfsstat4 fsr_status;
};
typedef struct FREE_STATEID4res FREE_STATEID4res;
struct ILLEGAL4res {
nfsstat4 status;
};
@ -1371,6 +1381,7 @@ enum nfs_opnum4 {
OP_RELEASE_LOCKOWNER = 39,
OP_CREATE_SESSION = 43,
OP_DESTROY_SESSION = 44,
OP_FREE_STATEID = 45,
OP_ILLEGAL = 10044,
};
typedef enum nfs_opnum4 nfs_opnum4;
@ -1409,6 +1420,7 @@ struct nfs_argop4 {
RELEASE_LOCKOWNER4args oprelease_lockowner;
CREATE_SESSION4args opcreatesession;
DESTROY_SESSION4args opdestroysession;
FREE_STATEID4args opfreestateid;
} nfs_argop4_u;
};
typedef struct nfs_argop4 nfs_argop4;
@ -1454,6 +1466,7 @@ struct nfs_resop4 {
RELEASE_LOCKOWNER4res oprelease_lockowner;
CREATE_SESSION4res opcreatesession;
DESTROY_SESSION4res opdestroysession;
FREE_STATEID4res opfreestateid;
ILLEGAL4res opillegal;
} nfs_resop4_u;
};
@ -1823,6 +1836,8 @@ extern uint32_t zdr_CREATE_SESSION4resok (ZDR *, CREATE_SESSION4resok*);
extern uint32_t zdr_CREATE_SESSION4res (ZDR *, CREATE_SESSION4res*);
extern uint32_t zdr_DESTROY_SESSION4args (ZDR *, DESTROY_SESSION4args*);
extern uint32_t zdr_DESTROY_SESSION4res (ZDR *, DESTROY_SESSION4res*);
extern uint32_t zdr_FREE_STATEID4args (ZDR *, FREE_STATEID4args*);
extern uint32_t zdr_FREE_STATEID4res (ZDR *, FREE_STATEID4res*);
extern uint32_t zdr_ILLEGAL4res (ZDR *, ILLEGAL4res*);
extern uint32_t zdr_nfs_opnum4 (ZDR *, nfs_opnum4*);
extern uint32_t zdr_nfs_argop4 (ZDR *, nfs_argop4*);
@ -2056,6 +2071,8 @@ extern uint32_t zdr_CREATE_SESSION4resok ();
extern uint32_t zdr_CREATE_SESSION4res ();
extern uint32_t zdr_DESTROY_SESSION4args ();
extern uint32_t zdr_DESTROY_SESSION4res ();
extern uint32_t zdr_FREE_STATEID4args ();
extern uint32_t zdr_FREE_STATEID4res ();
extern uint32_t zdr_ILLEGAL4res ();
extern uint32_t zdr_nfs_opnum4 ();
extern uint32_t zdr_nfs_argop4 ();

View File

@ -1468,6 +1468,17 @@ struct DESTROY_SESSION4res {
nfsstat4 dsr_status;
};
/*
* FREE_STATEID
*/
struct FREE_STATEID4args {
stateid4 fsa_stateid;
};
struct FREE_STATEID4res {
nfsstat4 fsr_status;
};
/*
* ILLEGAL: Response for illegal operation numbers
*/
@ -1519,6 +1530,7 @@ enum nfs_opnum4 {
OP_RELEASE_LOCKOWNER = 39,
OP_CREATE_SESSION = 43,
OP_DESTROY_SESSION = 44,
OP_FREE_STATEID = 45,
OP_ILLEGAL = 10044
};
@ -1566,6 +1578,7 @@ union nfs_argop4 switch (nfs_opnum4 argop) {
oprelease_lockowner;
case OP_CREATE_SESSION: CREATE_SESSION4args opcreatesession;
case OP_DESTROY_SESSION: DESTROY_SESSION4args opdestroysession;
case OP_FREE_STATEID: FREE_STATEID4args opfreestateid;
case OP_ILLEGAL: void;
};
@ -1613,6 +1626,7 @@ union nfs_resop4 switch (nfs_opnum4 resop){
oprelease_lockowner;
case OP_CREATE_SESSION: CREATE_SESSION4res opcreatesession;
case OP_DESTROY_SESSION: DESTROY_SESSION4res opdestroysession;
case OP_FREE_STATEID: FREE_STATEID4res opfreestateid;
case OP_ILLEGAL: ILLEGAL4res opillegal;
};