Whamcloud - gitweb
LU-5099 api: transfer object type via dt_insert API
[fs/lustre-release.git] / lustre / obdclass / llog_internal.h
index 0fd1936..6eec20b 100644 (file)
@@ -26,6 +26,8 @@
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2012, 2013, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -43,8 +45,7 @@ struct llog_process_info {
         void               *lpi_cbdata;
         void               *lpi_catdata;
         int                 lpi_rc;
-        int                 lpi_flags;
-        cfs_completion_t    lpi_completion;
+       struct completion       lpi_completion;
        const struct lu_env     *lpi_env;
 
 };
@@ -52,17 +53,11 @@ struct llog_process_info {
 struct llog_thread_info {
        struct lu_attr                   lgi_attr;
        struct lu_fid                    lgi_fid;
-       struct llog_logid                lgi_logid;
        struct dt_object_format          lgi_dof;
-       struct llog_process_data         lgi_lpd;
-       struct lustre_mdt_attrs          lgi_lma_attr;
-
        struct lu_buf                    lgi_buf;
        loff_t                           lgi_off;
-
-       struct llog_rec_hdr              lgi_lrh;
-       struct llog_rec_tail             lgi_tail;
-       struct llog_logid_rec            lgi_lid;
+       struct llog_logid_rec            lgi_logid;
+       struct dt_insert_rec             lgi_dt_rec;
 };
 
 extern struct lu_context_key llog_thread_key;
@@ -76,11 +71,28 @@ static inline struct llog_thread_info *llog_info(const struct lu_env *env)
        return lgi;
 }
 
+static inline void
+lustre_build_llog_lvfs_oid(struct llog_logid *logid, __u64 ino, __u32 gen)
+{
+       ostid_set_seq_llog(&logid->lgl_oi);
+       ostid_set_id(&logid->lgl_oi, ino);
+       logid->lgl_ogen = gen;
+}
+
 int llog_info_init(void);
 void llog_info_fini(void);
 
-int llog_cat_id2handle(struct llog_handle *cathandle, struct llog_handle **res,
-                       struct llog_logid *logid);
-int class_config_dump_handler(struct llog_handle * handle,
-                              struct llog_rec_hdr *rec, void *data);
+void llog_handle_get(struct llog_handle *loghandle);
+void llog_handle_put(struct llog_handle *loghandle);
+int llog_cat_id2handle(const struct lu_env *env, struct llog_handle *cathandle,
+                      struct llog_handle **res, struct llog_logid *logid);
+int class_config_dump_handler(const struct lu_env *env,
+                             struct llog_handle *handle,
+                             struct llog_rec_hdr *rec, void *data);
+int class_config_yaml_output(struct llog_rec_hdr *rec, char *buf, int size);
+int llog_process_or_fork(const struct lu_env *env,
+                        struct llog_handle *loghandle,
+                        llog_cb_t cb, void *data, void *catdata, bool fork);
+int llog_cat_cleanup(const struct lu_env *env, struct llog_handle *cathandle,
+                    struct llog_handle *loghandle, int index);
 #endif