mirror_zfs/module/os/freebsd/zfs
George Wilson c494aa7f57
vdev_ashift should only be set once
== Motivation and Context

The new vdev ashift optimization prevents the removal of devices when
a zfs configuration is comprised of disks which have different logical
and physical block sizes. This is caused because we set 'spa_min_ashift'
in vdev_open and then later call 'vdev_ashift_optimize'. This would
result in an inconsistency between spa's ashift calculations and that
of the top-level vdev.

In addition, the optimization logical ignores the overridden ashift
value that would be provided by '-o ashift=<val>'.

== Description

This change reworks the vdev ashift optimization so that it's only
set the first time the device is configured. It still allows the
physical and logical ahsift values to be set every time the device
is opened but those values are only consulted on first open.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Cedric Berger <cedric@precidata.com>
Signed-off-by: George Wilson <gwilson@delphix.com>
External-Issue: DLPX-71831
Closes #10932
2020-09-18 12:13:47 -07:00
..
abd_os.c Include scatter_chunk_waste in arc_size 2020-08-17 20:04:04 -07:00
arc_os.c Changes to make openzfs build within FreeBSD buildworld 2020-07-31 21:30:31 -07:00
crypto_os.c Fix crypto build on FreeBSD HEAD 2020-05-30 12:54:57 -07:00
dmu_os.c Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
hkdf.c Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
kmod_core.c FreeBSD: drop dependency on cryptodev module 2020-09-09 10:10:32 -07:00
spa_os.c FreeBSD: Add option to rewind checkpoint while importing root pool 2020-08-19 17:19:42 -07:00
sysctl_os.c vdev_ashift should only be set once 2020-09-18 12:13:47 -07:00
vdev_file.c vdev_ashift should only be set once 2020-09-18 12:13:47 -07:00
vdev_geom.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_label_os.c Add support for boot environment data to be stored in the label 2020-05-07 09:36:33 -07:00
zfs_acl.c Prevent zfs_acl_chmod() if aclmode restricted and ACL inherited 2020-08-22 21:49:25 -07:00
zfs_ctldir.c Fix page fault in zfsctl_snapdir_getattr 2020-08-01 08:42:55 -07:00
zfs_debug.c Convert Linux-isms to FreeBSD-isms in platform zfs_debug.c 2020-07-31 21:25:35 -07:00
zfs_dir.c Refactor ccompile.h to not include system headers 2020-07-25 20:09:50 -07:00
zfs_file_os.c FreeBSD: Do not copy vp into f_data for DTYPE_VNODE files 2020-09-17 10:54:14 -07:00
zfs_ioctl_compat.c Changes to make openzfs build within FreeBSD buildworld 2020-07-31 21:30:31 -07:00
zfs_ioctl_os.c Make zc_nvlist_src_size limit tunable 2020-08-18 09:33:55 -07:00
zfs_onexit_os.c Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
zfs_vfsops.c FreeBSD: convert teardown inactive lock to a read-mostly sleepable lock 2020-09-09 10:15:52 -07:00
zfs_vnops.c FreeBSD: convert teardown inactive lock to a read-mostly sleepable lock 2020-09-09 10:15:52 -07:00
zfs_znode.c FreeBSD: convert teardown inactive lock to a read-mostly sleepable lock 2020-09-09 10:15:52 -07:00
zio_crypt.c Fix typos 2020-06-09 21:24:09 -07:00
zvol_os.c zvol: unsigned off can not be less than zero 2020-09-02 09:30:29 -07:00