vserver 1.9.3
[linux-2.6.git] / include / linux / nfs_xdr.h
index f47e3c2..f140234 100644 (file)
@@ -99,20 +99,21 @@ struct nfs4_change_info {
  * Arguments to the open call.
  */
 struct nfs_openargs {
-       struct nfs_fh *         fh;
+       const struct nfs_fh *   fh;
        __u32                   seqid;
-       __u32                   share_access;
+       int                     open_flags;
        __u64                   clientid;
        __u32                   id;
-       __u32                   opentype;
-       __u32                   createmode;
        union {
                struct iattr *  attrs;    /* UNCHECKED, GUARDED */
                nfs4_verifier   verifier; /* EXCLUSIVE */
+               nfs4_stateid    delegation;             /* CLAIM_DELEGATE_CUR */
+               int             delegation_type;        /* CLAIM_PREVIOUS */
        } u;
        const struct qstr *     name;
        const struct nfs_server *server;         /* Needed for ID mapping */
        const u32 *             bitmask;
+       __u32                   claim;
 };
 
 struct nfs_openres {
@@ -122,13 +123,17 @@ struct nfs_openres {
        __u32                   rflags;
        struct nfs_fattr *      f_attr;
        const struct nfs_server *server;
+       int                     delegation_type;
+       nfs4_stateid            delegation;
+       __u32                   do_recall;
+       __u64                   maxsize;
 };
 
 /*
  * Arguments to the open_confirm call.
  */
 struct nfs_open_confirmargs {
-       struct nfs_fh *         fh;
+       const struct nfs_fh *   fh;
        nfs4_stateid            stateid;
        __u32                   seqid;
 };
@@ -137,19 +142,6 @@ struct nfs_open_confirmres {
        nfs4_stateid            stateid;
 };
 
-/*
- * Arguments to the open_reclaim call.
- */
-struct nfs_open_reclaimargs {
-       struct nfs_fh *         fh;
-       __u64                   clientid;
-       __u32                   seqid;
-       __u32                   id;
-       __u32                   share_access;
-       __u32                   claim;
-       const __u32 *           bitmask;
-};
-
 /*
  * Arguments to the close call.
  */
@@ -157,7 +149,7 @@ struct nfs_closeargs {
        struct nfs_fh *         fh;
        nfs4_stateid            stateid;
        __u32                   seqid;
-       __u32                   share_access;
+       int                     open_flags;
 };
 
 struct nfs_closeres {
@@ -224,6 +216,11 @@ struct nfs_lockres {
        const struct nfs_server *       server;
 };
 
+struct nfs4_delegreturnargs {
+       const struct nfs_fh *fhandle;
+       const nfs4_stateid *stateid;
+};
+
 /*
  * Arguments to the read call.
  */
@@ -235,8 +232,7 @@ struct nfs_lockres {
 
 struct nfs_readargs {
        struct nfs_fh *         fh;
-       fl_owner_t              lockowner;
-       struct nfs4_state *     state;
+       struct nfs_open_context *context;
        __u64                   offset;
        __u32                   count;
        unsigned int            pgbase;
@@ -259,8 +255,7 @@ struct nfs_readres {
 
 struct nfs_writeargs {
        struct nfs_fh *         fh;
-       fl_owner_t              lockowner;
-       struct nfs4_state *     state;
+       struct nfs_open_context *context;
        __u64                   offset;
        __u32                   count;
        enum nfs3_stable_how    stable;
@@ -366,7 +361,8 @@ struct nfs_diropok {
 
 struct nfs_readlinkargs {
        struct nfs_fh *         fh;
-       unsigned int            count;
+       unsigned int            pgbase;
+       unsigned int            pglen;
        struct page **          pages;
 };
 
@@ -460,7 +456,8 @@ struct nfs3_accessres {
 
 struct nfs3_readlinkargs {
        struct nfs_fh *         fh;
-       unsigned int            count;
+       unsigned int            pgbase;
+       unsigned int            pglen;
        struct page **          pages;
 };
 
@@ -575,7 +572,8 @@ struct nfs4_readdir_res {
 
 struct nfs4_readlink {
        const struct nfs_fh *           fh;
-       u32                             count;   /* zero-copy data */
+       unsigned int                    pgbase;
+       unsigned int                    pglen;   /* zero-copy data */
        struct page **                  pages;   /* zero-copy data */
 };
 
@@ -597,13 +595,15 @@ struct nfs4_rename_res {
 };
 
 struct nfs4_setclientid {
-       nfs4_verifier                   sc_verifier;      /* request */
-       char *                          sc_name;          /* request */
+       const nfs4_verifier *           sc_verifier;      /* request */
+       unsigned int                    sc_name_len;
+       char                            sc_name[32];      /* request */
        u32                             sc_prog;          /* request */
+       unsigned int                    sc_netid_len;
        char                            sc_netid[4];      /* request */
+       unsigned int                    sc_uaddr_len;
        char                            sc_uaddr[24];     /* request */
        u32                             sc_cb_ident;      /* request */
-       struct nfs4_client *            sc_state;         /* response */
 };
 
 struct nfs4_statfs_arg {
@@ -657,6 +657,8 @@ struct nfs_write_data {
        void (*complete) (struct nfs_write_data *, int);
 };
 
+struct nfs_access_entry;
+
 /*
  * RPC procedure vector for NFSv2/NFSv3 demuxing
  */
@@ -667,16 +669,18 @@ struct nfs_rpc_ops {
 
        int     (*getroot) (struct nfs_server *, struct nfs_fh *,
                            struct nfs_fsinfo *);
-       int     (*getattr) (struct inode *, struct nfs_fattr *);
+       int     (*getattr) (struct nfs_server *, struct nfs_fh *,
+                           struct nfs_fattr *);
        int     (*setattr) (struct dentry *, struct nfs_fattr *,
                            struct iattr *);
        int     (*lookup)  (struct inode *, struct qstr *,
                            struct nfs_fh *, struct nfs_fattr *);
-       int     (*access)  (struct inode *, struct rpc_cred *, int);
-       int     (*readlink)(struct inode *, struct page *);
-       int     (*read)    (struct nfs_read_data *, struct file *);
-       int     (*write)   (struct nfs_write_data *, struct file *);
-       int     (*commit)  (struct nfs_write_data *, struct file *);
+       int     (*access)  (struct inode *, struct nfs_access_entry *);
+       int     (*readlink)(struct inode *, struct page *, unsigned int,
+                           unsigned int);
+       int     (*read)    (struct nfs_read_data *);
+       int     (*write)   (struct nfs_write_data *);
+       int     (*commit)  (struct nfs_write_data *);
        struct inode *  (*create)  (struct inode *, struct qstr *,
                            struct iattr *, int);
        int     (*remove)  (struct inode *, struct qstr *);
@@ -708,8 +712,6 @@ struct nfs_rpc_ops {
        void    (*commit_setup) (struct nfs_write_data *, int how);
        int     (*file_open)   (struct inode *, struct file *);
        int     (*file_release) (struct inode *, struct file *);
-       void    (*request_init)(struct nfs_page *, struct file *);
-       int     (*request_compatible)(struct nfs_page *, struct file *, struct page *);
        int     (*lock)(struct file *, int, struct file_lock *);
 };