* Use is subject to license terms.
*/
/*
+ * Copyright (c) 2011 Whamcloud, Inc.
+ */
+/*
* This file is part of Lustre, http://www.lustre.org/
* Lustre is a trademark of Sun Microsystems, Inc.
*
#ifdef HAVE_EXT4_LDISKFS
#include <ldiskfs/ldiskfs.h>
#include <ldiskfs/ldiskfs_jbd2.h>
-#define osd_journal_callback_set(handle, func, jcb) jbd2_journal_callback_set(handle, func, jcb)
+# ifdef HAVE_LDISKFS_JOURNAL_CALLBACK_ADD
+# define journal_callback ldiskfs_journal_cb_entry
+# define osd_journal_callback_set(handle, func, jcb) ldiskfs_journal_callback_add(handle, func, jcb)
+# else
+# define osd_journal_callback_set(handle, func, jcb) jbd2_journal_callback_set(handle, func, jcb)
+# endif
#else
#include <linux/jbd.h>
#include <linux/ldiskfs_fs.h>
#define OSD_OII_NOGEN (0)
#define OSD_COUNTERS (0)
+/** Enable thandle usage statistics */
+#define OSD_THANDLE_STATS (0)
+
#ifdef HAVE_QUOTA_SUPPORT
struct osd_ctxt {
__u32 oc_uid;
__u32 oc_gid;
- __u32 oc_cap;
+ cfs_kernel_cap_t oc_cap;
};
#endif
*/
struct dt_object *od_obj_area;
- /* Environment for transaction commit callback.
- * Currently, OSD is based on ext3/JBD. Transaction commit in ext3/JBD
- * is serialized, that is there is no more than one transaction commit
- * at a time (JBD journal_commit_transaction() is serialized).
- * This means that it's enough to have _one_ lu_context.
- */
- struct lu_env od_env_for_commit;
-
/*
* Fid Capability
*/
__u32 od_iop_mode;
};
+/*
+ * osd dev stats
+ */
+
+#ifdef LPROCFS
+enum {
+#if OSD_THANDLE_STATS
+ LPROC_OSD_THANDLE_STARTING,
+ LPROC_OSD_THANDLE_OPEN,
+ LPROC_OSD_THANDLE_CLOSING,
+#endif
+ LPROC_OSD_NR
+};
+#endif
+
/**
* Storage representation for fids.
*
*/
struct txn_param oti_txn;
struct timespec oti_time;
- struct timespec oti_time2;
/*
* XXX temporary: fake struct file for osd_object_sync
*/
struct lustre_capa_key oti_capa_key;
struct lustre_capa oti_capa;
+ /** osd_device reference, initialized in osd_trans_start() and
+ used in osd_trans_stop() */
+ struct osd_device *oti_dev;
+
/**
* following ipd and it structures are used for osd_index_iam_lookup()
* these are defined separately as we might do index operation