1 /* 2 * GPL HEADER START 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 only, 8 * as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License version 2 for more details (a copy is included 14 * in the LICENSE file that accompanied this code). 15 * 16 * You should have received a copy of the GNU General Public License 17 * version 2 along with this program; If not, see 18 * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf 19 * 20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 21 * CA 95054 USA or visit www.sun.com if you need additional information or 22 * have any questions. 23 * 24 * GPL HEADER END 25 */ 26 /* 27 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 28 * Use is subject to license terms. 29 * 30 * Copyright (c) 2012, Intel Corporation. 31 */ 32 /* 33 * This file is part of Lustre, http://www.lustre.org/ 34 * Lustre is a trademark of Sun Microsystems, Inc. 35 */ 36 37 #ifndef __LLOG_INTERNAL_H__ 38 #define __LLOG_INTERNAL_H__ 39 40 #include "../include/lustre_log.h" 41 42 struct llog_process_info { 43 struct llog_handle *lpi_loghandle; 44 llog_cb_t lpi_cb; 45 void *lpi_cbdata; 46 void *lpi_catdata; 47 int lpi_rc; 48 struct completion lpi_completion; 49 const struct lu_env *lpi_env; 50 51 }; 52 53 struct llog_thread_info { 54 struct lu_attr lgi_attr; 55 struct lu_fid lgi_fid; 56 struct lu_buf lgi_buf; 57 loff_t lgi_off; 58 struct llog_rec_hdr lgi_lrh; 59 struct llog_rec_tail lgi_tail; 60 }; 61 62 extern struct lu_context_key llog_thread_key; 63 64 int llog_info_init(void); 65 void llog_info_fini(void); 66 67 void llog_handle_get(struct llog_handle *loghandle); 68 void llog_handle_put(struct llog_handle *loghandle); 69 int class_config_dump_handler(const struct lu_env *env, 70 struct llog_handle *handle, 71 struct llog_rec_hdr *rec, void *data); 72 int llog_process_or_fork(const struct lu_env *env, 73 struct llog_handle *loghandle, 74 llog_cb_t cb, void *data, void *catdata, bool fork); 75 int llog_cat_cleanup(const struct lu_env *env, struct llog_handle *cathandle, 76 struct llog_handle *loghandle, int index); 77 #endif 78