Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
[safe/jmp/linux-2.6] / include / linux / nfs_fs_sb.h
index b47c0fc..34fc6be 100644 (file)
@@ -12,6 +12,9 @@
 struct nfs4_session;
 struct nfs_iostats;
 struct nlm_host;
+struct nfs4_sequence_args;
+struct nfs4_sequence_res;
+struct nfs_server;
 
 /*
  * The nfs_client identifies our client state to the server.
@@ -21,6 +24,7 @@ struct nfs_client {
        int                     cl_cons_state;  /* current construction state (-ve: init error) */
 #define NFS_CS_READY           0               /* ready to be used */
 #define NFS_CS_INITING         1               /* busy initialising */
+#define NFS_CS_SESSION_INITING 2               /* busy initialising  session */
        unsigned long           cl_res_state;   /* NFS resources state */
 #define NFS_CS_CALLBACK                1               /* - callback started */
 #define NFS_CS_IDMAP           2               /* - idmap started */
@@ -67,9 +71,20 @@ struct nfs_client {
         */
        char                    cl_ipaddr[48];
        unsigned char           cl_id_uniquifier;
+       int                  (* cl_call_sync)(struct nfs_server *server,
+                                             struct rpc_message *msg,
+                                             struct nfs4_sequence_args *args,
+                                             struct nfs4_sequence_res *res,
+                                             int cache_reply);
 #endif /* CONFIG_NFS_V4 */
 
 #ifdef CONFIG_NFS_V4_1
+       /* clientid returned from EXCHANGE_ID, used by session operations */
+       u64                     cl_ex_clid;
+       /* The sequence id to use for the next CREATE_SESSION */
+       u32                     cl_seqid;
+       /* The flags used for obtaining the clientid during EXCHANGE_ID */
+       u32                     cl_exchange_flags;
        struct nfs4_session     *cl_session;    /* sharred session */
 #endif /* CONFIG_NFS_V4_1 */
 
@@ -152,6 +167,15 @@ struct nfs_server {
 #define NFS_CAP_SYMLINKS       (1U << 2)
 #define NFS_CAP_ACLS           (1U << 3)
 #define NFS_CAP_ATOMIC_OPEN    (1U << 4)
+#define NFS_CAP_CHANGE_ATTR    (1U << 5)
+#define NFS_CAP_FILEID         (1U << 6)
+#define NFS_CAP_MODE           (1U << 7)
+#define NFS_CAP_NLINK          (1U << 8)
+#define NFS_CAP_OWNER          (1U << 9)
+#define NFS_CAP_OWNER_GROUP    (1U << 10)
+#define NFS_CAP_ATIME          (1U << 11)
+#define NFS_CAP_CTIME          (1U << 12)
+#define NFS_CAP_MTIME          (1U << 13)
 
 
 /* maximum number of slots to use */
@@ -185,12 +209,13 @@ struct nfs4_session {
        unsigned long                   session_state;
        u32                             hash_alg;
        u32                             ssv_len;
+       struct completion               complete;
 
        /* The fore and back channel */
        struct nfs4_channel_attrs       fc_attrs;
        struct nfs4_slot_table          fc_slot_table;
        struct nfs4_channel_attrs       bc_attrs;
-                                       /* back channel has one slot */
+       struct nfs4_slot_table          bc_slot_table;
        struct nfs_client               *clp;
 };