Fixup ioctls
[binject.git] / kcompat.h
index 366a4f2403cdbfb65e81191bd76d39af87db1ef2..93feccdb0e2e2da141ab2a29852a35238018a4e5 100644 (file)
--- a/kcompat.h
+++ b/kcompat.h
@@ -33,7 +33,7 @@ static inline unsigned int binject_get_bs(struct request_queue *q)
 
 static inline void binject_mark_bio_write(struct bio *bio)
 {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)
        bio->bi_rw |= REQ_WRITE;
 #else
        bio->bi_rw |= (1 << BIO_RW);
@@ -50,17 +50,21 @@ static inline ktime_t ktime_get(void)
 }
 #endif
 
-static inline struct kmem_cache *binject_create_slab(const char *name,
-                                                    size_t obj_size)
-{
+static inline struct kmem_cache *
+binject_create_slab(const char *name, size_t obj_size, unsigned long flags,
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 26)
-       return kmem_cache_create(name, obj_size, 0, 0, NULL);
+                   void (*init_once)(void *))
+{
+       return kmem_cache_create(name, obj_size, 0, flags, NULL);
 #else
-       return kmem_cache_create(name, obj_size, 0, 0, NULL, NULL);
+#define KCOMPAT_OLD_SLAB
+                   void (*init_once)(void *, kmem_cache_t *, unsigned long))
+{
+       return kmem_cache_create(name, obj_size, 0, flags, init_once, NULL);
 #endif
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)
 #define B_REQ_WRITE                    REQ_WRITE
 #define        B_REQ_SYNC                      REQ_SYNC
 #define B_REQ_UNPLUG                   REQ_UNPLUG
@@ -73,6 +77,19 @@ static inline struct kmem_cache *binject_create_slab(const char *name,
 #define B_REQ_FAILFAST_DRIVER          REQ_FAILFAST_DRIVER
 #define B_REQ_DISCARD                  REQ_DISCARD
 #define B_REQ_FLUSH                    REQ_FLUSH
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 34)
+#define B_REQ_WRITE                    (1 << BIO_RW)
+#define        B_REQ_SYNC                      (1 << BIO_RW_SYNCIO)
+#define B_REQ_UNPLUG                   (1 << BIO_RW_UNPLUG)
+#define B_REQ_NOIDLE                   (1 << BIO_RW_NOIDLE)
+#define B_REQ_HARDBARRIER              (1 << BIO_RW_BARRIER)
+#define B_REQ_META                     (1 << BIO_RW_META)
+#define B_REQ_RAHEAD                   (1 << BIO_RW_AHEAD)
+#define B_REQ_FAILFAST_DEV             (1 << BIO_RW_FAILFAST_DEV)
+#define B_REQ_FAILFAST_TRANSPORT       (1 << BIO_RW_FAILFAST_TRANSPORT)
+#define B_REQ_FAILFAST_DRIVER          (1 << BIO_RW_FAILFAST_DRIVER)
+#define B_REQ_DISCARD                  (1 << BIO_RW_DISCARD)
+#define B_REQ_FLUSH                    0
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
 #define B_REQ_WRITE                    (1 << BIO_RW)
 #define        B_REQ_SYNC                      (1 << BIO_RW_SYNC)