nfsd4: separate delegreturn case from preprocess_stateid_op
[safe/jmp/linux-2.6] / include / linux / nfsd / state.h
index a597e2e..c9311a1 100644 (file)
@@ -66,8 +66,7 @@ struct nfs4_cb_recall {
        u32                     cbr_ident;
        int                     cbr_trunc;
        stateid_t               cbr_stateid;
-       u32                     cbr_fhlen;
-       u32                     cbr_fhval[NFS4_FHSIZE];
+       struct knfsd_fh         cbr_fh;
        struct nfs4_delegation  *cbr_dp;
 };
 
@@ -86,8 +85,7 @@ struct nfs4_delegation {
 };
 
 #define dl_stateid      dl_recall.cbr_stateid
-#define dl_fhlen        dl_recall.cbr_fhlen
-#define dl_fhval        dl_recall.cbr_fhval
+#define dl_fh           dl_recall.cbr_fh
 
 /* client delegation callback info */
 struct nfs4_callback {
@@ -98,8 +96,6 @@ struct nfs4_callback {
        u32                     cb_ident;
        /* RPC client info */
        atomic_t                cb_set;     /* successful CB_NULL call */
-       struct rpc_program      cb_program;
-       struct rpc_stat         cb_stat;
        struct rpc_clnt *       cb_client;
 };
 
@@ -125,7 +121,9 @@ struct nfs4_client {
        char                    cl_recdir[HEXDIR_LEN]; /* recovery dir */
        nfs4_verifier           cl_verifier;    /* generated by client */
        time_t                  cl_time;        /* time of last lease renewal */
-       u32                     cl_addr;        /* client ipaddress */
+       __be32                  cl_addr;        /* client ipaddress */
+       u32                     cl_flavor;      /* setclientid pseudoflavor */
+       char                    *cl_principal;  /* setclientid principal name */
        struct svc_cred         cl_cred;        /* setclientid principal */
        clientid_t              cl_clientid;    /* generated by server */
        nfs4_verifier           cl_confirm;     /* generated by server */
@@ -168,8 +166,7 @@ struct nfs4_replay {
        unsigned int            rp_buflen;
        char                    *rp_buf;
        unsigned                intrp_allocated;
-       int                     rp_openfh_len;
-       char                    rp_openfh[NFS4_FHSIZE];
+       struct knfsd_fh         rp_openfh;
        char                    rp_ibuf[NFSD4_REPLAY_ISIZE];
 };
 
@@ -224,6 +221,7 @@ struct nfs4_file {
        struct inode            *fi_inode;
        u32                     fi_id;      /* used with stateowner->so_id 
                                             * for stateid_hashtbl hash */
+       bool                    fi_had_conflict;
 };
 
 /*
@@ -265,7 +263,6 @@ struct nfs4_stateid {
 #define RD_STATE               0x00000010
 #define WR_STATE               0x00000020
 #define CLOSE_STATE             0x00000040
-#define DELEG_RET               0x00000080
 
 #define seqid_mutating_err(err)                       \
        (((err) != nfserr_stale_clientid) &&    \
@@ -273,7 +270,6 @@ struct nfs4_stateid {
        ((err) != nfserr_stale_stateid) &&      \
        ((err) != nfserr_bad_stateid))
 
-extern __be32 nfsd4_renew(clientid_t *clid);
 extern __be32 nfs4_preprocess_stateid_op(struct svc_fh *current_fh,
                stateid_t *stateid, int flags, struct file **filp);
 extern void nfs4_lock_state(void);