Whamcloud - gitweb
LU-620 llite: add delete_from_page_cache and remove_from_page_cache check
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_internal.h
index e56974e..343287c 100644 (file)
@@ -30,6 +30,9 @@
  * 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>
@@ -79,11 +87,14 @@ struct inode;
 #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
 
@@ -136,6 +147,21 @@ struct osd_device {
         __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.
  *
@@ -209,7 +235,6 @@ struct osd_thread_info {
          */
         struct txn_param       oti_txn;
         struct timespec        oti_time;
-        struct timespec        oti_time2;
         /*
          * XXX temporary: fake struct file for osd_object_sync
          */
@@ -220,6 +245,10 @@ struct osd_thread_info {
         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