82f46731fd
Auditing the code to verify that all instances of cv_signal() and cv_broadcast() are called under the proper associated mutex turned up several races. None of these have been conclusively seen in the wild but the following patch set resolves them. For reference, from the cv_signal(9F) man page: cv_signal() signals the condition and wakes one blocked thread. All blocked threads can be unblocked by calling cv_broadcast(). You must acquire the mutex passed into cv_wait() before calling cv_signal() or cv_broadcast() Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #1048 |
||
---|---|---|
cmd | ||
config | ||
dracut | ||
etc | ||
include | ||
lib | ||
man | ||
module | ||
patches | ||
scripts | ||
udev | ||
.gitignore | ||
AUTHORS | ||
COPYING | ||
COPYRIGHT | ||
ChangeLog | ||
DISCLAIMER | ||
META | ||
Makefile.am | ||
OPENSOLARIS.LICENSE | ||
PKGBUILD-zfs-modules.in | ||
PKGBUILD-zfs.in | ||
README.markdown | ||
ZFS.RELEASE | ||
autogen.sh | ||
configure.ac | ||
copy-builtin | ||
dkms.conf.in | ||
dkms.postinst | ||
zfs-modules.spec.in | ||
zfs-script-config.sh.in | ||
zfs.release.in | ||
zfs.spec.in |
README.markdown
Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!
$ ./configure
$ make pkg
To copy the kernel code inside your kernel source tree for builtin compilation:
$ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-...
$ ./copy-builtin /usr/src/linux-...
Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org