linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / linux / nfs_fs_sb.h
index c44be53..3d3a305 100644 (file)
@@ -3,89 +3,15 @@
 
 #include <linux/list.h>
 #include <linux/backing-dev.h>
-#include <linux/fscache.h>
-
-struct nfs_iostats;
-
-/*
- * The nfs_client identifies our client state to the server.
- */
-struct nfs_client {
-       atomic_t                cl_count;
-       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 */
-       int                     cl_nfsversion;  /* NFS protocol version */
-       unsigned long           cl_res_state;   /* NFS resources state */
-#define NFS_CS_RPCIOD          0               /* - rpciod started */
-#define NFS_CS_CALLBACK                1               /* - callback started */
-#define NFS_CS_IDMAP           2               /* - idmap started */
-#define NFS_CS_RENEWD          3               /* - renewd started */
-       struct sockaddr_in      cl_addr;        /* server identifier */
-       char *                  cl_hostname;    /* hostname of server */
-       struct list_head        cl_share_link;  /* link in global client list */
-       struct list_head        cl_superblocks; /* List of nfs_server structs */
-
-       struct rpc_clnt *       cl_rpcclient;
-       const struct nfs_rpc_ops *rpc_ops;      /* NFS protocol vector */
-       unsigned long           retrans_timeo;  /* retransmit timeout */
-       unsigned int            retrans_count;  /* number of retransmit tries */
-
-#ifdef CONFIG_NFS_V4
-       u64                     cl_clientid;    /* constant */
-       nfs4_verifier           cl_confirm;
-       unsigned long           cl_state;
-
-       u32                     cl_lockowner_id;
-
-       /*
-        * The following rwsem ensures exclusive access to the server
-        * while we recover the state following a lease expiration.
-        */
-       struct rw_semaphore     cl_sem;
-
-       struct list_head        cl_delegations;
-       struct list_head        cl_state_owners;
-       struct list_head        cl_unused;
-       int                     cl_nunused;
-       spinlock_t              cl_lock;
-
-       unsigned long           cl_lease_time;
-       unsigned long           cl_last_renewal;
-       struct work_struct      cl_renewd;
-
-       struct rpc_wait_queue   cl_rpcwaitq;
-
-       /* used for the setclientid verifier */
-       struct timespec         cl_boot_time;
-
-       /* idmapper */
-       struct idmap *          cl_idmap;
-
-       /* Our own IP address, as a null-terminated string.
-        * This is used to generate the clientid, and the callback address.
-        */
-       char                    cl_ipaddr[16];
-       unsigned char           cl_id_uniquifier;
-#endif
-
-#ifdef CONFIG_NFS_FSCACHE
-       struct fscache_cookie   *fscache;       /* client index cache cookie */
-#endif
-};
 
 /*
  * NFS client parameters stored in the superblock.
  */
 struct nfs_server {
-       struct nfs_client *     nfs_client;     /* shared client and NFS4 state */
-       struct list_head        client_link;    /* List of other nfs_server structs
-                                                * that share the same client
-                                                */
-       struct list_head        master_link;    /* link in master servers list */
        struct rpc_clnt *       client;         /* RPC client handle */
+       struct rpc_clnt *       client_sys;     /* 2nd handle for FSINFO */
        struct rpc_clnt *       client_acl;     /* ACL RPC client handle */
-       struct nfs_iostats *    io_stats;       /* I/O statistics */
+       struct nfs_rpc_ops *    rpc_ops;        /* NFS protocol vector */
        struct backing_dev_info backing_dev_info;
        int                     flags;          /* various flags */
        unsigned int            caps;           /* server capabilities */
@@ -101,13 +27,19 @@ struct nfs_server {
        unsigned int            acdirmin;
        unsigned int            acdirmax;
        unsigned int            namelen;
-
-       struct nfs_fsid         fsid;
-       __u64                   maxfilesize;    /* maximum file size */
-       unsigned long           mount_time;     /* when this fs was mounted */
-       dev_t                   s_dev;          /* superblock dev numbers */
-
+       char *                  hostname;       /* remote hostname */
+       struct nfs_fh           fh;
+       struct sockaddr_in      addr;
 #ifdef CONFIG_NFS_V4
+       /* Our own IP address, as a null-terminated string.
+        * This is used to generate the clientid, and the callback address.
+        */
+       char                    ip_addr[16];
+       char *                  mnt_path;
+       struct nfs4_client *    nfs4_state;     /* all NFSv4 state starts here */
+       struct list_head        nfs4_siblings;  /* List of other nfs_server structs
+                                                * that share the same clientid
+                                                */
        u32                     attr_bitmask[2];/* V4 bitmask representing the set
                                                   of attributes supported on this
                                                   filesystem */
@@ -115,7 +47,6 @@ struct nfs_server {
                                                   that are supported on this
                                                   filesystem */
 #endif
-       void (*destroy)(struct nfs_server *);
 };
 
 /* Server capabilities */