Hi, I patched enhanceio to compile on 3.17 as well as older kernels. You can try the attached debdiff. I also created an upstream pull request with these changes.
Thanks for maintaining this package! Philipp
diff -Nru enhanceio-0+git20130620/debian/changelog enhanceio-0+git20130620/debian/changelog --- enhanceio-0+git20130620/debian/changelog 2014-05-19 12:07:47.000000000 +0200 +++ enhanceio-0+git20130620/debian/changelog 2014-10-21 21:13:47.000000000 +0200 @@ -1,3 +1,10 @@ +enhanceio (0+git20130620-3.1) experimental; urgency=medium + + * Non-maintainer upload. + * patch for Kernel 3.17 + + -- Philipp Edelmann <[email protected]> Tue, 21 Oct 2014 21:13:23 +0200 + enhanceio (0+git20130620-3) experimental; urgency=low * Updated "make.patch" to build without "-fstack-protector". This fixed diff -Nru enhanceio-0+git20130620/debian/patches/kernel-3.17.patch enhanceio-0+git20130620/debian/patches/kernel-3.17.patch --- enhanceio-0+git20130620/debian/patches/kernel-3.17.patch 1970-01-01 01:00:00.000000000 +0100 +++ enhanceio-0+git20130620/debian/patches/kernel-3.17.patch 2014-10-21 22:25:46.000000000 +0200 @@ -0,0 +1,280 @@ +--- a/Driver/enhanceio/eio_conf.c ++++ b/Driver/enhanceio/eio_conf.c +@@ -89,7 +89,12 @@ + .priority = 0, + }; + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) ++int eio_wait_schedule(struct wait_bit_key *unused) ++#else ++#define wait_on_bit_lock_action wait_on_bit_lock + int eio_wait_schedule(void *unused) ++#endif + { + + schedule(); +@@ -1842,7 +1847,7 @@ + + dmc->sysctl_active.mem_limit_pct = 75; + +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_UPDATE_LIST, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + dmc->next_cache = cache_list_head; +@@ -1901,7 +1906,7 @@ + vfree((void *)dmc->cache_sets); + vfree((void *)EIO_CACHE(dmc)); + +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_UPDATE_LIST, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + nodepp = &cache_list_head; +@@ -2055,7 +2060,7 @@ + vfree((void *)dmc->cache_sets); + eio_ttc_put_device(&dmc->disk_dev); + eio_put_cache_device(dmc); +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_UPDATE_LIST, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + nodepp = &cache_list_head; +@@ -2387,7 +2392,7 @@ + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) + return NOTIFY_DONE; + +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_HANDLE_REBOOT, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) { +@@ -2400,7 +2405,7 @@ + EIO_ASSERT(eio_reboot_notified == 0); + eio_reboot_notified = EIO_REBOOT_HANDLING_INPROG; + +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_UPDATE_LIST, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + for (dmc = cache_list_head; dmc != NULL; dmc = dmc->next_cache) { +--- a/Driver/enhanceio/eio.h ++++ b/Driver/enhanceio/eio.h +@@ -128,7 +128,11 @@ + unsigned long synch_flags; + }; + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) ++int eio_wait_schedule(struct wait_bit_key *unused); ++#else + int eio_wait_schedule(void *unused); ++#endif + + struct eio_event { + struct task_struct *process; /* handle of the sleeping process */ +--- a/Driver/enhanceio/eio_ttc.c ++++ b/Driver/enhanceio/eio_ttc.c +@@ -31,6 +31,11 @@ + #include <linux/miscdevice.h> + #include "eio.h" + #include "eio_ttc.h" ++ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0)) ++#define wait_on_bit_lock_action wait_on_bit_lock ++#endif ++ + static struct rw_semaphore eio_ttc_lock[EIO_HASHTBL_SIZE]; + static struct list_head eio_ttc_list[EIO_HASHTBL_SIZE]; + +@@ -1497,7 +1502,7 @@ + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) + return 0; + +- (void)wait_on_bit_lock((void *)&eio_control->synch_flags, ++ (void)wait_on_bit_lock_action((void *)&eio_control->synch_flags, + EIO_HANDLE_REBOOT, eio_wait_schedule, + TASK_UNINTERRUPTIBLE); + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) { +--- a/Driver/enhanceio/eio_procfs.c ++++ b/Driver/enhanceio/eio_procfs.c +@@ -52,7 +52,7 @@ + * eio_zerostats_sysctl + */ + static int +-eio_zerostats_sysctl(ctl_table *table, int write, void __user *buffer, ++eio_zerostats_sysctl(struct ctl_table *table, int write, void __user *buffer, + size_t *length, loff_t *ppos) + { + struct cache_c *dmc = (struct cache_c *)table->extra1; +@@ -120,7 +120,7 @@ + * - sets the eio sysctl mem_limit_pct value + */ + static int +-eio_mem_limit_pct_sysctl(ctl_table *table, int write, void __user *buffer, ++eio_mem_limit_pct_sysctl(struct ctl_table *table, int write, void __user *buffer, + size_t *length, loff_t *ppos) + { + struct cache_c *dmc = (struct cache_c *)table->extra1; +@@ -167,7 +167,7 @@ + * eio_clean_sysctl + */ + static int +-eio_clean_sysctl(ctl_table *table, int write, void __user *buffer, ++eio_clean_sysctl(struct ctl_table *table, int write, void __user *buffer, + size_t *length, loff_t *ppos) + { + struct cache_c *dmc = (struct cache_c *)table->extra1; +@@ -249,7 +249,7 @@ + * eio_dirty_high_threshold_sysctl + */ + static int +-eio_dirty_high_threshold_sysctl(ctl_table *table, int write, ++eio_dirty_high_threshold_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -331,7 +331,7 @@ + * eio_dirty_low_threshold_sysctl + */ + static int +-eio_dirty_low_threshold_sysctl(ctl_table *table, int write, ++eio_dirty_low_threshold_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -419,7 +419,7 @@ + * eio_dirty_set_high_threshold_sysctl + */ + static int +-eio_dirty_set_high_threshold_sysctl(ctl_table *table, int write, ++eio_dirty_set_high_threshold_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -505,7 +505,7 @@ + * eio_dirty_set_low_threshold_sysctl + */ + static int +-eio_dirty_set_low_threshold_sysctl(ctl_table *table, int write, ++eio_dirty_set_low_threshold_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -598,7 +598,7 @@ + * eio_autoclean_threshold_sysctl + */ + static int +-eio_autoclean_threshold_sysctl(ctl_table *table, int write, ++eio_autoclean_threshold_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -674,7 +674,7 @@ + * eio_time_based_clean_interval_sysctl + */ + static int +-eio_time_based_clean_interval_sysctl(ctl_table *table, int write, ++eio_time_based_clean_interval_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos) + { +@@ -768,7 +768,7 @@ + * eio_control_sysctl + */ + int +-eio_control_sysctl(ctl_table *table, int write, void __user *buffer, ++eio_control_sysctl(struct ctl_table *table, int write, void __user *buffer, + size_t *length, loff_t *ppos) + { + int rv = 0; +@@ -929,10 +929,10 @@ + #define PROC_IOSZ_HIST "io_hist" + #define PROC_CONFIG "config" + +-static int eio_invalidate_sysctl(ctl_table *table, int write, ++static int eio_invalidate_sysctl(struct ctl_table *table, int write, + void __user *buffer, size_t *length, + loff_t *ppos); +-static void *eio_find_sysctl_data(struct cache_c *dmc, ctl_table *vars); ++static void *eio_find_sysctl_data(struct cache_c *dmc, struct ctl_table *vars); + static char *eio_cons_sysctl_devname(struct cache_c *dmc); + static char *eio_cons_procfs_cachename(struct cache_c *dmc, + char *path_component); +@@ -1011,10 +1011,10 @@ + */ + static struct sysctl_table_dir { + struct ctl_table_header *sysctl_header; +- ctl_table vars[0 + 1]; +- ctl_table dev[0 + 1]; +- ctl_table dir[1 + 1]; +- ctl_table root[1 + 1]; ++ struct ctl_table vars[0 + 1]; ++ struct ctl_table dev[0 + 1]; ++ struct ctl_table dir[1 + 1]; ++ struct ctl_table root[1 + 1]; + } sysctl_template_dir = { + .vars = { + }, .dev = { +@@ -1039,10 +1039,10 @@ + + static struct sysctl_table_common { + struct ctl_table_header *sysctl_header; +- ctl_table vars[NUM_COMMON_SYSCTLS + 1]; +- ctl_table dev[1 + 1]; +- ctl_table dir[1 + 1]; +- ctl_table root[1 + 1]; ++ struct ctl_table vars[NUM_COMMON_SYSCTLS + 1]; ++ struct ctl_table dev[1 + 1]; ++ struct ctl_table dir[1 + 1]; ++ struct ctl_table root[1 + 1]; + } sysctl_template_common = { + .vars = { + { /* 1 */ +@@ -1089,10 +1089,10 @@ + + static struct sysctl_table_writeback { + struct ctl_table_header *sysctl_header; +- ctl_table vars[NUM_WRITEBACK_SYSCTLS + 1]; +- ctl_table dev[1 + 1]; +- ctl_table dir[1 + 1]; +- ctl_table root[1 + 1]; ++ struct ctl_table vars[NUM_WRITEBACK_SYSCTLS + 1]; ++ struct ctl_table dev[1 + 1]; ++ struct ctl_table dir[1 + 1]; ++ struct ctl_table root[1 + 1]; + } sysctl_template_writeback = { + .vars = { + { /* 1 */ +@@ -1169,10 +1169,10 @@ + #define NUM_INVALIDATE_SYSCTLS (1) + static struct sysctl_table_invalidate { + struct ctl_table_header *sysctl_header; +- ctl_table vars[NUM_INVALIDATE_SYSCTLS + 1]; +- ctl_table dev[1 + 1]; +- ctl_table dir[1 + 1]; +- ctl_table root[1 + 1]; ++ struct ctl_table vars[NUM_INVALIDATE_SYSCTLS + 1]; ++ struct ctl_table dev[1 + 1]; ++ struct ctl_table dir[1 + 1]; ++ struct ctl_table root[1 + 1]; + } sysctl_template_invalidate = { + .vars = { + { /* 1 */ +@@ -1317,7 +1317,7 @@ + * eio_invalidate_sysctl + */ + static int +-eio_invalidate_sysctl(ctl_table *table, int write, void __user *buffer, ++eio_invalidate_sysctl(struct ctl_table *table, int write, void __user *buffer, + size_t *length, loff_t *ppos) + { + static int have_sector; +@@ -1389,7 +1389,7 @@ + /* + * eio_find_sysctl_data + */ +-static void *eio_find_sysctl_data(struct cache_c *dmc, ctl_table *vars) ++static void *eio_find_sysctl_data(struct cache_c *dmc, struct ctl_table *vars) + { + + if (strcmp(vars->procname, "do_clean") == 0) diff -Nru enhanceio-0+git20130620/debian/patches/series enhanceio-0+git20130620/debian/patches/series --- enhanceio-0+git20130620/debian/patches/series 2014-04-24 11:03:52.000000000 +0200 +++ enhanceio-0+git20130620/debian/patches/series 2014-10-21 21:10:31.000000000 +0200 @@ -2,3 +2,4 @@ 72.patch make.patch path2eio_cli.patch +kernel-3.17.patch
signature.asc
Description: Digital signature

