Go to file
Ned Bass 3ee56c292b Make rollbacks fail gracefully
Support for rolling back datasets require a functional ZPL, which we currently
do not have.  The zfs command does not check for ZPL support before attempting
a rollback, and in preparation for rolling back a zvol it removes the minor
node of the device.  To prevent the zvol device node from disappearing after a
failed rollback operation, this change wraps the zfs_do_rollback() function in
an #ifdef HAVE_ZPL and returns ENOSYS in the absence of a ZPL.  This is
consistent with the behavior of other ZPL dependent commands such as mount.

The orginal error message observed with this bug was rather confusing:

    internal error: Unknown error 524
    Aborted

This was because zfs_ioc_rollback() returns ENOTSUP if we don't HAVE_ZPL, but
Linux actually has no such error code.  It should instead return EOPNOTSUPP, as
that is how ENOTSUP is defined in user space.  With that we would have gotten
the somewhat more helpful message

    cannot rollback 'tank/fish': unsupported version

This is rather a moot point with the above changes since we will no longer make
that ioctl call without a ZPL.  But, this change updates the error code just in
case.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-11-08 14:03:36 -08:00
cmd Make rollbacks fail gracefully 2010-11-08 14:03:36 -08:00
config Add FAILFAST support 2010-10-12 14:55:02 -07:00
etc Add FAILFAST support 2010-10-12 14:55:02 -07:00
include Add helper functions for manipulating device names 2010-10-22 12:25:30 -07:00
lib Call modprobe with absolute path 2010-10-22 12:39:57 -07:00
man Add FAILFAST support 2010-10-12 14:55:02 -07:00
module Make rollbacks fail gracefully 2010-11-08 14:03:36 -08:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Add zconfig test for adding and removing vdevs 2010-10-22 12:41:57 -07:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Add AUTHORS to master branch 2010-05-18 14:55:01 -07:00
autogen.sh Minor packaging fixes 2010-09-01 15:42:32 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -07:00
configure Add FAILFAST support 2010-10-12 14:55:02 -07:00
configure.ac Add [-m map] option to zpool_layout 2010-09-17 11:02:19 -07:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Update COPYRIGHT to reference zpios CDDL exceptions. 2010-05-18 14:25:28 -07:00
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -07:00
Makefile.am Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
Makefile.in Add FAILFAST support 2010-10-12 14:55:02 -07:00
META Prep for zfs-0.5.1 tag 2010-09-01 16:00:15 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix markdown rendering 2010-09-15 09:09:37 -07:00
zfs_config.h.in Add FAILFAST support 2010-10-12 14:55:02 -07:00
zfs-modules.spec.in Use top level object directory in zfs-module.spec 2010-09-10 12:33:31 -07:00
zfs-script-config.sh.in Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs.spec.in Support custom build directories and move includes 2010-09-08 12:38:56 -07:00

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

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