ensuring exactly once semantics for open

if we are doing CREATE_NEW file creation, then based on whether or not
we have a persistent session, we'll send either GUARDED4 create for
persistent session and EXCLUSIVE4_1 create otherwise.
This commit is contained in:
Olga Kornievskaia 2011-05-24 12:33:58 -04:00
parent cb54018555
commit 54c11cd84b
6 changed files with 42 additions and 41 deletions

View file

@ -524,21 +524,10 @@ enum createmode4 {
EXCLUSIVE4_1 = 3
};
typedef struct __creatverfattr {
unsigned char cva_verf[NFS4_VERIFIER_SIZE];
fattr4 cva_attrs;
} creatverfattr;
typedef struct __createhow4 {
uint32_t mode;
union {
/* case UNCHECKED4, GUARDED4: */
createattrs4 createattrs;
/* case EXCLUSIVE4: */
unsigned char createverf[NFS4_VERIFIER_SIZE];
/* case EXCLUSIVE4_1: */
creatverfattr ch_createboth;
} u;
uint32_t mode;
createattrs4 createattrs;
unsigned char *createverf;
} createhow4;
enum opentype4 {
@ -972,6 +961,7 @@ int nfs41_open(
IN uint32_t allow,
IN uint32_t deny,
IN uint32_t create,
IN uint32_t how_mode,
IN uint32_t mode,
IN bool_t try_recovery,
IN OUT nfs41_open_state *state,