Whamcloud - gitweb
libcfs: 0. add emulation of new style Linux mutices for older kernels; 1. add lockdep...
authornikita <nikita>
Fri, 8 Aug 2008 13:54:28 +0000 (13:54 +0000)
committernikita <nikita>
Fri, 8 Aug 2008 13:54:28 +0000 (13:54 +0000)
libcfs/include/libcfs/linux/linux-lock.h

index 26e5578..d78e2b5 100644 (file)
  * - wait_for_completion(c)
  */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+
+/**************************************************************************
+ *
+ * Lockdep "implementation". Also see liblustre.h
+ *
+ **************************************************************************/
+
+struct lock_class_key {
+        ;
+};
+
+static inline void lockdep_set_class(void *lock, struct lock_class_key *key)
+{
+}
+
+/**************************************************************************
+ *
+ * Mutex interface from newer Linux kernels.
+ *
+ * this augments compatibility interface from include/linux/mutex.h
+ *
+ **************************************************************************/
+
+#ifndef mutex
+# define mutex semaphore
+#endif
+
+static inline void mutex_lock_nested(struct mutex *mutex, unsigned int subclass)
+{
+        return down(mutex);
+}
+
+static inline void mutex_destroy(struct mutex *lock)
+{
+}
+
+/*
+ * This is for use in assertions _only_, i.e., this function should always
+ * return 1.
+ *
+ * \retval 1 mutex is locked.
+ *
+ * \retval 0 mutex is not locked. This should never happen.
+ */
+static inline int mutex_is_locked(struct mutex *lock)
+{
+        return !!down_trylock(lock);
+}
+#endif
+
 #endif