freebsd with flexible iflib nic queues
Go to file
Ned Bass 3a7381e531 Use stored whole_disk property when opening a vdev
This commit fixes a bug in vdev_disk_open() in which the whole_disk property
was getting set to 0 for disk devices, even when it was stored as a 1 when the
zpool was created.  The whole_disk property lets us detect when the partition
suffix should be stripped from the device name in CLI output.  It is also used
to determine how writeback cache should be set for a device.

When an existing zpool is imported its configuration is read from the vdev
label by user space in zpool_read_label().  The whole_disk property is saved in
the nvlist which gets passed into the kernel, where it in turn gets saved in
the vdev struct in vdev_alloc().  Therefore, this value is available in
vdev_disk_open() and should not be overridden by checking the provided device
path, since that path will likely point to a partition and the check will
return the wrong result.

We also add an ASSERT that the whole_disk property is set.  We are not aware of
any cases where vdev_disk_open() should be called with a config that doesn't
have this property set.  The ASSERT is there so that when debugging is enabled
we can identify any legitimate cases that we are missing.  If we never hit the
ASSERT, we can at some point remove it along with the conditional whole_disk
check.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-10-04 13:53:18 -07:00
cmd Add [-m map] option to zpool_layout 2010-09-17 11:02:19 -07:00
config Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
etc Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
include Use linux __KERNEL__ define 2010-09-10 09:36:39 -07:00
lib Fix missing vdev names in zpool status output 2010-09-23 12:14:06 -07:00
man Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
module Use stored whole_disk property when opening a vdev 2010-10-04 13:53:18 -07:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Add missing Makefile.in from zpool_layout commit 2010-09-17 16:24:15 -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 [-m map] option to zpool_layout 2010-09-17 11:02:19 -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 Support custom build directories and move includes 2010-09-08 12:38:56 -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 initial autoconf products 2010-08-31 13:42: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