* GPL HEADER END
*/
/*
- * Copyright (c) 2012, 2016, Intel Corporation.
+ * Copyright (c) 2012, 2017, Intel Corporation.
*/
/*
* lustre/target/tgt_internal.h
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;
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;
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);
void tgt_cancel_slc_locks(struct lu_target *tgt, __u64 transno);
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 */