vserver 1.9.3
[linux-2.6.git] / include / linux / nfsd / xdr4.h
index df35cb3..bf94561 100644 (file)
@@ -39,6 +39,8 @@
 #ifndef _LINUX_NFSD_XDR4_H
 #define _LINUX_NFSD_XDR4_H
 
+#include <linux/nfs4.h>
+
 #define NFSD4_MAX_TAGLEN       128
 #define XDR_LEN(n)                     (((n) + 3) & ~3)
 
@@ -95,6 +97,7 @@ struct nfsd4_create {
        u32             cr_bmval[2];        /* request */
        struct iattr    cr_iattr;           /* request */
        struct nfsd4_change_info  cr_cinfo; /* response */
+       struct nfs4_acl *cr_acl;
 };
 #define cr_linklen     u.link.namelen
 #define cr_linkname    u.link.name
@@ -216,7 +219,7 @@ struct nfsd4_open {
        u32             op_rflags;          /* response */
        int             op_truncate;        /* used during processing */
        struct nfs4_stateowner *op_stateowner; /* used during processing */
-
+       struct nfs4_acl *op_acl;
 };
 #define op_iattr       u.iattr
 #define op_verf                u.verf
@@ -241,7 +244,7 @@ struct nfsd4_read {
        stateid_t       rd_stateid;         /* request */
        u64             rd_offset;          /* request */
        u32             rd_length;          /* request */
-       struct iovec    rd_iov[RPCSVC_MAXPAGES];
+       struct kvec     rd_iov[RPCSVC_MAXPAGES];
        int             rd_vlen;
        
        struct svc_rqst *rd_rqstp;          /* response */
@@ -291,6 +294,7 @@ struct nfsd4_setattr {
        stateid_t       sa_stateid;         /* request */
        u32             sa_bmval[2];        /* request */
        struct iattr    sa_iattr;           /* request */
+       struct nfs4_acl *sa_acl;
 };
 
 struct nfsd4_setclientid {
@@ -324,7 +328,7 @@ struct nfsd4_write {
        u64             wr_offset;          /* request */
        u32             wr_stable_how;      /* request */
        u32             wr_buflen;          /* request */
-       struct iovec    wr_vec[RPCSVC_MAXPAGES]; /* request */
+       struct kvec     wr_vec[RPCSVC_MAXPAGES]; /* request */
        int             wr_vlen;
 
        u32             wr_bytes_written;   /* response */
@@ -378,6 +382,7 @@ struct nfsd4_compoundargs {
        u32 *                           tmpp;
        struct tmpbuf {
                struct tmpbuf *next;
+               void (*release)(const void *);
                void *buf;
        }                               *to_free;
 
@@ -449,6 +454,7 @@ extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh,
 extern int
 nfsd4_release_lockowner(struct svc_rqst *rqstp,
                struct nfsd4_release_lockowner *rlockowner);
+extern void nfsd4_release_compoundargs(struct nfsd4_compoundargs *);
 #endif
 
 /*