Fix 'zfs rollback' on mounted file systems
[zfs.git] / include / linux / dcache_compat.h
index a624d4d..271a0cb 100644 (file)
 #include <linux/dcache.h>
 
 #define dname(dentry)  ((char *)((dentry)->d_name.name))
+#define dlen(dentry)   ((int)((dentry)->d_name.len))
+
+#ifndef HAVE_D_MAKE_ROOT
+#define d_make_root(inode)     d_alloc_root(inode)
+#endif /* HAVE_D_MAKE_ROOT */
+
+/*
+ * 2.6.30 API change,
+ * The const keyword was added to the 'struct dentry_operations' in
+ * the dentry structure.  To handle this we define an appropriate
+ * dentry_operations_t typedef which can be used.
+ */
+#ifdef HAVE_CONST_DENTRY_OPERATIONS
+typedef const struct dentry_operations dentry_operations_t;
+#else
+typedef struct dentry_operations       dentry_operations_t;
+#endif
+
+/*
+ * 2.6.38 API change,
+ * Added d_set_d_op() helper function which sets some flags in
+ * dentry->d_flags based on which operations are defined.
+ */
+#ifndef HAVE_D_SET_D_OP
+static inline void
+d_set_d_op(struct dentry *dentry, dentry_operations_t *op)
+{
+       dentry->d_op = op;
+}
+#endif /* HAVE_D_SET_D_OP */
 
 #endif /* _ZFS_DCACHE_H */