]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/nfsd/state.h
nfsd: implement pNFS layout recalls
[karo-tx-linux.git] / fs / nfsd / state.h
index 5f66b7fd0297a8ca3604547e934d6380194bdcfd..4f3bfeb1176662ce5c7eb6f59f9440c95c8cf68e 100644 (file)
@@ -502,6 +502,7 @@ struct nfs4_file {
        bool                    fi_had_conflict;
 #ifdef CONFIG_NFSD_PNFS
        struct list_head        fi_lo_states;
+       atomic_t                fi_lo_recalls;
 #endif
 };
 
@@ -542,6 +543,10 @@ struct nfs4_layout_stateid {
        spinlock_t                      ls_lock;
        struct list_head                ls_layouts;
        u32                             ls_layout_type;
+       struct file                     *ls_file;
+       struct nfsd4_callback           ls_recall;
+       stateid_t                       ls_recall_sid;
+       bool                            ls_recalled;
 };
 
 static inline struct nfs4_layout_stateid *layoutstateid(struct nfs4_stid *s)
@@ -556,6 +561,7 @@ static inline struct nfs4_layout_stateid *layoutstateid(struct nfs4_stid *s)
 enum nfsd4_cb_op {
        NFSPROC4_CLNT_CB_NULL = 0,
        NFSPROC4_CLNT_CB_RECALL,
+       NFSPROC4_CLNT_CB_LAYOUT,
        NFSPROC4_CLNT_CB_SEQUENCE,
 };