mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-24 03:08:51 +03:00
Breaking the world for a little bit. If anyone is going to continue
working on this branch for the next few days I suggested you work off of the 0.3.1 tag. The following changes are fairly extensive and are designed to make the SPL compatible with all kernels in the range of 2.6.18-2.6.25. There were 13 relevant API changes between these releases and I have added the needed autoconf tests to check for them. However, this has not all been tested extensively. I'll sort of the breakage on Fedora Core 9 and RHEL5 this week. SPL_AC_TYPE_UINTPTR_T SPL_AC_TYPE_KMEM_CACHE_T SPL_AC_KMEM_CACHE_DESTROY_INT SPL_AC_ATOMIC_PANIC_NOTIFIER SPL_AC_3ARGS_INIT_WORK SPL_AC_2ARGS_REGISTER_SYSCTL SPL_AC_KMEM_CACHE_T SPL_AC_KMEM_CACHE_CREATE_DTOR SPL_AC_3ARG_KMEM_CACHE_CREATE_CTOR SPL_AC_SET_SHRINKER SPL_AC_PATH_IN_NAMEIDATA SPL_AC_TASK_CURR SPL_AC_CTL_UNNUMBERED git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@119 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
@@ -6,8 +6,7 @@ DISTFILES = Makefile.in \
|
||||
splat-time.c splat-condvar.c splat-mutex.c \
|
||||
splat-rwlock.c splat-thread.c \
|
||||
splat-ctl.c splat-internal.h
|
||||
|
||||
CPPFLAGS += @KERNELCPPFLAGS@
|
||||
EXTRA_CFLAGS = @KERNELCPPFLAGS@
|
||||
|
||||
# Solaris Porting LAyer Tests
|
||||
obj-m := splat.o
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
*/
|
||||
|
||||
#include "splat-internal.h"
|
||||
#include <config.h>
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
|
||||
#include <linux/devfs_fs_kernel.h>
|
||||
|
||||
@@ -59,7 +59,7 @@ typedef struct mutex_priv {
|
||||
int mp_rc;
|
||||
} mutex_priv_t;
|
||||
|
||||
|
||||
#ifdef HAVE_3ARGS_INIT_WORK
|
||||
static void
|
||||
splat_mutex_test1_work(void *priv)
|
||||
{
|
||||
@@ -71,14 +71,16 @@ splat_mutex_test1_work(void *priv)
|
||||
if (!mutex_tryenter(&mp->mp_mtx))
|
||||
mp->mp_rc = -EBUSY;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
splat_mutex_test1(struct file *file, void *arg)
|
||||
{
|
||||
int rc = 0;
|
||||
#ifdef HAVE_3ARGS_INIT_WORK
|
||||
struct workqueue_struct *wq;
|
||||
struct work_struct work;
|
||||
mutex_priv_t *mp;
|
||||
int rc = 0;
|
||||
|
||||
mp = (mutex_priv_t *)kmalloc(sizeof(*mp), GFP_KERNEL);
|
||||
if (mp == NULL)
|
||||
@@ -141,10 +143,11 @@ out:
|
||||
destroy_workqueue(wq);
|
||||
out2:
|
||||
kfree(mp);
|
||||
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifdef HAVE_3ARGS_INIT_WORK
|
||||
static void
|
||||
splat_mutex_test2_work(void *priv)
|
||||
{
|
||||
@@ -162,13 +165,16 @@ splat_mutex_test2_work(void *priv)
|
||||
mp->mp_rc = rc + 1;
|
||||
mutex_exit(&mp->mp_mtx);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
splat_mutex_test2(struct file *file, void *arg)
|
||||
{
|
||||
int rc = 0;
|
||||
#ifdef HAVE_3ARGS_INIT_WORK
|
||||
struct workqueue_struct *wq;
|
||||
mutex_priv_t *mp;
|
||||
int i, rc = 0;
|
||||
int i;
|
||||
|
||||
mp = (mutex_priv_t *)kmalloc(sizeof(*mp), GFP_KERNEL);
|
||||
if (mp == NULL)
|
||||
@@ -220,7 +226,7 @@ splat_mutex_test2(struct file *file, void *arg)
|
||||
destroy_workqueue(wq);
|
||||
out:
|
||||
kfree(mp);
|
||||
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user