Merge tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[linux-2.6-block.git] / include / linux / nfs_xdr.h
index 93ab6071bbe967b56ea44c56111157f8a9135e3f..7bbe50504211d65cc096baa8bc6d45e2e9449125 100644 (file)
@@ -316,6 +316,49 @@ struct nfs4_layoutreturn {
        int rpc_status;
 };
 
+#define PNFS_LAYOUTSTATS_MAXSIZE 256
+
+struct nfs42_layoutstat_args;
+struct nfs42_layoutstat_devinfo;
+typedef        void (*layoutstats_encode_t)(struct xdr_stream *,
+               struct nfs42_layoutstat_args *,
+               struct nfs42_layoutstat_devinfo *);
+
+/* Per file per deviceid layoutstats */
+struct nfs42_layoutstat_devinfo {
+       struct nfs4_deviceid dev_id;
+       __u64 offset;
+       __u64 length;
+       __u64 read_count;
+       __u64 read_bytes;
+       __u64 write_count;
+       __u64 write_bytes;
+       __u32 layout_type;
+       layoutstats_encode_t layoutstats_encode;
+       void *layout_private;
+};
+
+struct nfs42_layoutstat_args {
+       struct nfs4_sequence_args seq_args;
+       struct nfs_fh *fh;
+       struct inode *inode;
+       nfs4_stateid stateid;
+       int num_dev;
+       struct nfs42_layoutstat_devinfo *devinfo;
+};
+
+struct nfs42_layoutstat_res {
+       struct nfs4_sequence_res seq_res;
+       int num_dev;
+       int rpc_status;
+};
+
+struct nfs42_layoutstat_data {
+       struct inode *inode;
+       struct nfs42_layoutstat_args args;
+       struct nfs42_layoutstat_res res;
+};
+
 struct stateowner_id {
        __u64   create_time;
        __u32   uniquifier;
@@ -984,17 +1027,14 @@ struct nfs4_readlink_res {
        struct nfs4_sequence_res        seq_res;
 };
 
-#define NFS4_SETCLIENTID_NAMELEN       (127)
 struct nfs4_setclientid {
        const nfs4_verifier *           sc_verifier;
-       unsigned int                    sc_name_len;
-       char                            sc_name[NFS4_SETCLIENTID_NAMELEN + 1];
        u32                             sc_prog;
        unsigned int                    sc_netid_len;
        char                            sc_netid[RPCBIND_MAXNETIDLEN + 1];
        unsigned int                    sc_uaddr_len;
        char                            sc_uaddr[RPCBIND_MAXUADDRLEN + 1];
-       u32                             sc_cb_ident;
+       struct nfs_client               *sc_clnt;
        struct rpc_cred                 *sc_cred;
 };
 
@@ -1142,12 +1182,9 @@ struct nfs41_state_protection {
        struct nfs4_op_map allow;
 };
 
-#define NFS4_EXCHANGE_ID_LEN   (48)
 struct nfs41_exchange_id_args {
        struct nfs_client               *client;
        nfs4_verifier                   *verifier;
-       unsigned int                    id_len;
-       char                            id[NFS4_EXCHANGE_ID_LEN];
        u32                             flags;
        struct nfs41_state_protection   state_protect;
 };