nfsd41: CREATE_EXCLUSIVE4_1
Implement the CREATE_EXCLUSIVE4_1 open mode conforming to http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26 This mode allows the client to atomically create a file if it doesn't exist while setting some of its attributes. It must be implemented if the server supports persistent reply cache and/or pnfs. Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
8c18f2052e
commit
79fb54abd2
4 changed files with 43 additions and 7 deletions
|
@ -219,10 +219,8 @@ struct nfsd4_open {
|
|||
u32 op_create; /* request */
|
||||
u32 op_createmode; /* request */
|
||||
u32 op_bmval[3]; /* request */
|
||||
union { /* request */
|
||||
struct iattr iattr; /* UNCHECKED4,GUARDED4 */
|
||||
nfs4_verifier verf; /* EXCLUSIVE4 */
|
||||
} u;
|
||||
struct iattr iattr; /* UNCHECKED4, GUARDED4, EXCLUSIVE4_1 */
|
||||
nfs4_verifier verf; /* EXCLUSIVE4 */
|
||||
clientid_t op_clientid; /* request */
|
||||
struct xdr_netobj op_owner; /* request */
|
||||
u32 op_seqid; /* request */
|
||||
|
@ -236,8 +234,8 @@ struct nfsd4_open {
|
|||
struct nfs4_stateowner *op_stateowner; /* used during processing */
|
||||
struct nfs4_acl *op_acl;
|
||||
};
|
||||
#define op_iattr u.iattr
|
||||
#define op_verf u.verf
|
||||
#define op_iattr iattr
|
||||
#define op_verf verf
|
||||
|
||||
struct nfsd4_open_confirm {
|
||||
stateid_t oc_req_stateid /* request */;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue