diff -rup old-fuse-2.6.2/kernel/fuse_i.h fuse-2.6.2/kernel/fuse_i.h
--- old-fuse-2.6.2/kernel/fuse_i.h	2007-01-29 07:23:29.000000000 +0900
+++ fuse-2.6.2/kernel/fuse_i.h	2007-02-05 09:47:53.000000000 +0900
@@ -56,8 +56,15 @@
 #include <linux/mm.h>
 #include <linux/backing-dev.h>
 #ifdef HAVE_MUTEX_H
-#include <linux/mutex.h>
-#else
+# include <linux/mutex.h>
+# ifndef mutex_destroy
+   /* Some Red Hat EL kernels include a backported mutex.h, which fools the
+    * HAVE_MUTEX_H check.  Fortunately, it lacks mutex_destroy, so we can
+    * easily detect this case. */
+#  define mutex_destroy(m) do { } while (0)
+#  define i_mutex i_sem   /* Hack for struct inode */
+# endif /* mutex_destroy */
+#else /* HAVE_MUTEX_H */
 #include <asm/semaphore.h>
 #define DEFINE_MUTEX(m) DECLARE_MUTEX(m)
 #define mutex_init(m) init_MUTEX(m)
