OpenZFS on Linux and FreeBSD
Go to file
Brian Behlendorf b8b6e4c453 Fix NULL deref in balance_pgdat()
Be careful not to unconditionally clear the PF_MEMALLOC bit in
the task structure.  It may have already been set when entering
kv_alloc() in which case it must remain set on exit.  In
particular the kswapd thread will have PF_MEMALLOC set in
order to prevent it from entering direct reclaim.  By clearing
it we allow the following NULL deref to potentially occur.

  BUG: unable to handle kernel NULL pointer dereference at (null)
  IP: [<ffffffff8109c7ab>] balance_pgdat+0x25b/0x4ff

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes ZFS issue #287
2011-11-03 09:50:22 -07:00
cmd Support custom build directories 2010-09-05 21:49:05 -07:00
config Fix HAVE_FS_STRUCT_SPINLOCK check for gcc-4.1.2 2011-09-19 13:45:08 -07:00
include Cleaned up MUTEX() #define 2011-10-19 09:59:32 -07:00
lib Support custom build directories 2010-09-05 21:49:05 -07:00
module Fix NULL deref in balance_pgdat() 2011-11-03 09:50:22 -07:00
patches Reimplement rwlocks for Linux lock profiling/analysis. 2009-09-18 16:09:47 -07:00
scripts Load zlib_inflate.ko 2011-03-22 12:18:44 -07:00
.gitignore Ignore unsigned module build products 2010-03-11 14:29:17 -08:00
AUTHORS Public Release Prep 2010-05-17 15:18:00 -07:00
COPYING Public Release Prep 2010-05-17 15:18:00 -07:00
ChangeLog Prep for spl-0.5.0 tag 2010-08-13 09:33:50 -07:00
DISCLAIMER Public Release Prep 2010-05-17 15:18:00 -07:00
INSTALL Public Release Prep 2010-05-17 15:18:00 -07:00
META Prep spl-0.6.0-rc6 tag 2011-10-06 14:58:09 -07:00
Makefile.am Support custom build directories 2010-09-05 21:49:05 -07:00
Makefile.in Avoid 'rpm -q' bug for 'make pkg' 2011-06-16 11:49:38 -07:00
README.markdown Fix markdown rendering 2010-09-15 09:05:34 -07:00
autogen.sh Public Release Prep 2010-05-17 15:18:00 -07:00
configure Fix HAVE_FS_STRUCT_SPINLOCK check for gcc-4.1.2 2011-09-19 13:45:08 -07:00
configure.ac Support custom build directories 2010-09-05 21:49:05 -07:00
spl-modules.spec.in Include distribution in release 2011-10-19 11:41:15 -07:00
spl.spec.in Include distribution in release 2011-10-19 11:41:15 -07:00
spl_config.h.in Linux 2.6.39 compat, mutex owner 2011-06-24 13:00:08 -07:00

README.markdown

The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of the Solaris kernel APIs. This shim layer makes it possible to run Solaris kernel code in the Linux kernel with relatively minimal modification. This can be particularly useful when you want to track upstream Solaris development closely and dont want the overhead of maintaining a large patch which converts Solaris primitives to Linux primitives.

To build packages for your distribution:

$ ./configure
$ make pkg

Full documentation for building, configuring, and using the SPL can be found at: http://zfsonlinux.org