Whamcloud - gitweb
LU-17705 ptlrpc: replace synchronize_rcu() with rcu_barrier()
[fs/lustre-release.git] / lustre / target / tgt_internal.h
index ea19560..ed45f82 100644 (file)
@@ -21,7 +21,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2012, 2016, Intel Corporation.
+ * Copyright (c) 2012, 2017, Intel Corporation.
  */
 /*
  * lustre/target/tgt_internal.h
@@ -35,7 +35,6 @@
 #define _TG_INTERNAL_H
 
 #include <lustre_net.h>
-#include <lustre/lustre_idl.h>
 #include <lu_target.h>
 #include <lustre_export.h>
 #include <lustre_fid.h>
@@ -64,8 +63,6 @@ struct tgt_thread_info {
 
        /* transno storage during last_rcvd update */
        __u64                    tti_transno;
-       __u32                    tti_has_trans:1,
-                                tti_mult_trans:1;
 
        /* Updates data for OUT target */
        struct thandle_exec_args tti_tea;
@@ -73,8 +70,6 @@ struct tgt_thread_info {
                struct {
                        /* for tgt_readpage()      */
                        struct lu_rdpg     tti_rdpg;
-                       /* for tgt_sendpage()      */
-                       struct l_wait_info tti_wait_info;
                } rdpg;
                struct {
                        struct dt_object_format    tti_update_dof;
@@ -83,8 +78,8 @@ struct tgt_thread_info {
                        int                        tti_update_reply_index;
                        struct obdo                tti_obdo;
                        struct dt_object           *tti_dt_object;
-                       struct l_wait_info tti_wait_info;
                } update;
+               struct obd_statfs osfs; /* for obd_statfs() in OFD/MDT */
        } tti_u;
        struct lfsck_req_local tti_lrl;
        struct dt_insert_rec tti_rec;
@@ -244,7 +239,7 @@ int tgt_txn_start_cb(const struct lu_env *env, struct thandle *th,
 int tgt_txn_stop_cb(const struct lu_env *env, struct thandle *th,
                    void *cookie);
 int tgt_handle_received_xid(struct obd_export *exp, __u64 rcvd_xid);
-int tgt_handle_tag(struct obd_export *exp, __u16 tag);
+int tgt_handle_tag(struct ptlrpc_request *req);
 
 void update_records_dump(const struct update_records *records,
                         unsigned int mask, bool dump_updates);
@@ -285,6 +280,23 @@ int top_trans_create_tmt(const struct lu_env *env,
                         struct top_thandle *top_th);
 
 void tgt_cancel_slc_locks(struct lu_target *tgt, __u64 transno);
+int lustre_tgt_register_fs(void);
+void lustre_tgt_unregister_fs(void);
 void barrier_init(void);
 void barrier_fini(void);
+
+/* FMD tracking data */
+struct tgt_fmd_data {
+       struct list_head fmd_list;        /* linked to tgt_fmd_list */
+       struct lu_fid    fmd_fid;         /* FID being written to */
+       __u64            fmd_mactime_xid; /* xid highest {m,a,c}time setattr */
+       time64_t         fmd_expire;      /* time when the fmd should expire */
+       int              fmd_refcount;    /* reference counter - list holds 1 */
+};
+
+/* tgt_fmd.c */
+extern struct kmem_cache *tgt_fmd_kmem;
+void tgt_fmd_expire(struct obd_export *exp);
+void tgt_fmd_cleanup(struct obd_export *exp);
+
 #endif /* _TG_INTERNAL_H */