fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / nfsd / xdr3.h
index 1240afe..89d9d60 100644 (file)
@@ -33,7 +33,6 @@ struct nfsd3_readargs {
        struct svc_fh           fh;
        __u64                   offset;
        __u32                   count;
-       struct iovec            vec[RPCSVC_MAXPAGES];
        int                     vlen;
 };
 
@@ -42,8 +41,7 @@ struct nfsd3_writeargs {
        __u64                   offset;
        __u32                   count;
        int                     stable;
-       int                     len;
-       struct iovec            vec[RPCSVC_MAXPAGES];
+       __u32                   len;
        int                     vlen;
 };
 
@@ -53,7 +51,7 @@ struct nfsd3_createargs {
        int                     len;
        int                     createmode;
        struct iattr            attrs;
-       __u32 *                 verf;
+       __be32 *                verf;
 };
 
 struct nfsd3_mknodargs {
@@ -100,8 +98,8 @@ struct nfsd3_readdirargs {
        __u64                   cookie;
        __u32                   dircount;
        __u32                   count;
-       __u32 *                 verf;
-       u32 *                   buffer;
+       __be32 *                verf;
+       __be32 *                buffer;
 };
 
 struct nfsd3_commitargs {
@@ -110,78 +108,93 @@ struct nfsd3_commitargs {
        __u32                   count;
 };
 
+struct nfsd3_getaclargs {
+       struct svc_fh           fh;
+       int                     mask;
+};
+
+struct posix_acl;
+struct nfsd3_setaclargs {
+       struct svc_fh           fh;
+       int                     mask;
+       struct posix_acl        *acl_access;
+       struct posix_acl        *acl_default;
+};
+
 struct nfsd3_attrstat {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
+       struct kstat            stat;
 };
 
 /* LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD */
 struct nfsd3_diropres  {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           dirfh;
        struct svc_fh           fh;
 };
 
 struct nfsd3_accessres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
        __u32                   access;
 };
 
 struct nfsd3_readlinkres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
        __u32                   len;
 };
 
 struct nfsd3_readres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
        unsigned long           count;
        int                     eof;
 };
 
 struct nfsd3_writeres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
        unsigned long           count;
        int                     committed;
 };
 
 struct nfsd3_renameres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           ffh;
        struct svc_fh           tfh;
 };
 
 struct nfsd3_linkres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           tfh;
        struct svc_fh           fh;
 };
 
 struct nfsd3_readdirres {
-       __u32                   status;
+       __be32                  status;
        struct svc_fh           fh;
        int                     count;
-       __u32                   verf[2];
+       __be32                  verf[2];
 
        struct readdir_cd       common;
-       u32 *                   buffer;
+       __be32 *                buffer;
        int                     buflen;
-       u32 *                   offset;
+       __be32 *                offset;
+       __be32 *                offset1;
        struct svc_rqst *       rqstp;
 
 };
 
 struct nfsd3_fsstatres {
-       __u32                   status;
+       __be32                  status;
        struct kstatfs          stats;
        __u32                   invarsec;
 };
 
 struct nfsd3_fsinfores {
-       __u32                   status;
+       __be32                  status;
        __u32                   f_rtmax;
        __u32                   f_rtpref;
        __u32                   f_rtmult;
@@ -194,7 +207,7 @@ struct nfsd3_fsinfores {
 };
 
 struct nfsd3_pathconfres {
-       __u32                   status;
+       __be32                  status;
        __u32                   p_link_max;
        __u32                   p_name_max;
        __u32                   p_no_trunc;
@@ -204,8 +217,16 @@ struct nfsd3_pathconfres {
 };
 
 struct nfsd3_commitres {
-       __u32                   status;
+       __be32                  status;
+       struct svc_fh           fh;
+};
+
+struct nfsd3_getaclres {
+       __be32                  status;
        struct svc_fh           fh;
+       int                     mask;
+       struct posix_acl        *acl_access;
+       struct posix_acl        *acl_default;
 };
 
 /* dummy type for release */
@@ -240,81 +261,86 @@ union nfsd3_xdrstore {
        struct nfsd3_fsinfores          fsinfores;
        struct nfsd3_pathconfres        pathconfres;
        struct nfsd3_commitres          commitres;
+       struct nfsd3_getaclres          getaclres;
 };
 
 #define NFS3_SVC_XDRSIZE               sizeof(union nfsd3_xdrstore)
 
-int nfs3svc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
-int nfs3svc_decode_sattrargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_fhandle(struct svc_rqst *, __be32 *, struct nfsd_fhandle *);
+int nfs3svc_decode_sattrargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_sattrargs *);
-int nfs3svc_decode_diropargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_diropargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_diropargs *);
-int nfs3svc_decode_accessargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_accessargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_accessargs *);
-int nfs3svc_decode_readargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_readargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_readargs *);
-int nfs3svc_decode_writeargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_writeargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_writeargs *);
-int nfs3svc_decode_createargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_createargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_createargs *);
-int nfs3svc_decode_mkdirargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_mkdirargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_createargs *);
-int nfs3svc_decode_mknodargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_mknodargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_mknodargs *);
-int nfs3svc_decode_renameargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_renameargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_renameargs *);
-int nfs3svc_decode_readlinkargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_readlinkargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_readlinkargs *);
-int nfs3svc_decode_linkargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_linkargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_linkargs *);
-int nfs3svc_decode_symlinkargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_symlinkargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_symlinkargs *);
-int nfs3svc_decode_readdirargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_readdirargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_readdirargs *);
-int nfs3svc_decode_readdirplusargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_readdirargs *);
-int nfs3svc_decode_commitargs(struct svc_rqst *, u32 *,
+int nfs3svc_decode_commitargs(struct svc_rqst *, __be32 *,
                                struct nfsd3_commitargs *);
-int nfs3svc_encode_voidres(struct svc_rqst *, u32 *, void *);
-int nfs3svc_encode_attrstat(struct svc_rqst *, u32 *,
+int nfs3svc_encode_voidres(struct svc_rqst *, __be32 *, void *);
+int nfs3svc_encode_attrstat(struct svc_rqst *, __be32 *,
                                struct nfsd3_attrstat *);
-int nfs3svc_encode_wccstat(struct svc_rqst *, u32 *,
+int nfs3svc_encode_wccstat(struct svc_rqst *, __be32 *,
                                struct nfsd3_attrstat *);
-int nfs3svc_encode_diropres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_diropres(struct svc_rqst *, __be32 *,
                                struct nfsd3_diropres *);
-int nfs3svc_encode_accessres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_accessres(struct svc_rqst *, __be32 *,
                                struct nfsd3_accessres *);
-int nfs3svc_encode_readlinkres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_readlinkres(struct svc_rqst *, __be32 *,
                                struct nfsd3_readlinkres *);
-int nfs3svc_encode_readres(struct svc_rqst *, u32 *, struct nfsd3_readres *);
-int nfs3svc_encode_writeres(struct svc_rqst *, u32 *, struct nfsd3_writeres *);
-int nfs3svc_encode_createres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_readres(struct svc_rqst *, __be32 *, struct nfsd3_readres *);
+int nfs3svc_encode_writeres(struct svc_rqst *, __be32 *, struct nfsd3_writeres *);
+int nfs3svc_encode_createres(struct svc_rqst *, __be32 *,
                                struct nfsd3_diropres *);
-int nfs3svc_encode_renameres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_renameres(struct svc_rqst *, __be32 *,
                                struct nfsd3_renameres *);
-int nfs3svc_encode_linkres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_linkres(struct svc_rqst *, __be32 *,
                                struct nfsd3_linkres *);
-int nfs3svc_encode_readdirres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_readdirres(struct svc_rqst *, __be32 *,
                                struct nfsd3_readdirres *);
-int nfs3svc_encode_fsstatres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_fsstatres(struct svc_rqst *, __be32 *,
                                struct nfsd3_fsstatres *);
-int nfs3svc_encode_fsinfores(struct svc_rqst *, u32 *,
+int nfs3svc_encode_fsinfores(struct svc_rqst *, __be32 *,
                                struct nfsd3_fsinfores *);
-int nfs3svc_encode_pathconfres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_pathconfres(struct svc_rqst *, __be32 *,
                                struct nfsd3_pathconfres *);
-int nfs3svc_encode_commitres(struct svc_rqst *, u32 *,
+int nfs3svc_encode_commitres(struct svc_rqst *, __be32 *,
                                struct nfsd3_commitres *);
 
-int nfs3svc_release_fhandle(struct svc_rqst *, u32 *,
+int nfs3svc_release_fhandle(struct svc_rqst *, __be32 *,
                                struct nfsd3_attrstat *);
-int nfs3svc_release_fhandle2(struct svc_rqst *, u32 *,
+int nfs3svc_release_fhandle2(struct svc_rqst *, __be32 *,
                                struct nfsd3_fhandle_pair *);
-int nfs3svc_encode_entry(struct readdir_cd *, const char *name,
-                               int namlen, loff_t offset, ino_t ino,
+int nfs3svc_encode_entry(void *, const char *name,
+                               int namlen, loff_t offset, u64 ino,
                                unsigned int);
-int nfs3svc_encode_entry_plus(struct readdir_cd *, const char *name,
-                               int namlen, loff_t offset, ino_t ino,
+int nfs3svc_encode_entry_plus(void *, const char *name,
+                               int namlen, loff_t offset, u64 ino,
                                unsigned int);
+/* Helper functions for NFSv3 ACL code */
+__be32 *nfs3svc_encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p,
+                               struct svc_fh *fhp);
+__be32 *nfs3svc_decode_fh(__be32 *p, struct svc_fh *fhp);
 
 
 #endif /* _LINUX_NFSD_XDR3_H */