mirror_zfs/module/os/linux/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 Linux 5.9 compat: NR_SLAB_RECLAIMABLE 2020-08-29 20:57:45 -07:00
Makefile.in Move spa_stats.c to common code 2020-08-30 14:12:46 -07:00
mmp_os.c Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
policy.c Linux 4.10 compat: has_capability() 2020-07-19 09:56:21 -07:00
qat_compress.c Fix QAT allocation failure return value 2020-01-06 11:17:53 -08:00
qat_crypt.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
qat.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
spa_misc_os.c Make spa_history_zone platform-dependent in kernel 2020-03-02 09:43:30 -08:00
trace.c Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
vdev_disk.c pool may become suspended during device expansion 2020-09-17 20:03:10 -07:00
vdev_file.c vdev_ashift should only be set once 2020-09-18 12:13:47 -07:00
zfs_acl.c Rename acltype=posixacl to acltype=posix 2020-09-16 12:26:06 -07:00
zfs_ctldir.c Fix inability to destroy snapshot used over NFS 2020-08-24 17:33:02 -07:00
zfs_debug.c Linux 5.6 compat: time_t 2020-02-27 09:31:02 -08:00
zfs_dir.c Make use of ZFS_DEBUG consistent within kmod sources 2020-07-25 20:07:44 -07:00
zfs_file_os.c Re-share zfsdev_getminor and zfs_onexit_fd_hold 2020-02-28 14:50:32 -08:00
zfs_ioctl_os.c Make zc_nvlist_src_size limit tunable 2020-08-18 09:33:55 -07:00
zfs_sysfs.c Persistent L2ARC 2020-04-10 10:33:35 -07:00
zfs_vfsops.c Rename acltype=posixacl to acltype=posix 2020-09-16 12:26:06 -07:00
zfs_vnops.c Make use of ZFS_DEBUG consistent within kmod sources 2020-07-25 20:07:44 -07:00
zfs_znode.c Rename refcount.h to zfs_refcount.h 2020-07-29 16:35:33 -07:00
zio_crypt.c Linux 4.14, 4.19, 5.0+ compat: SIMD save/restore 2019-10-24 10:17:33 -07:00
zpl_ctldir.c Eliminate Linux specific inode usage from common code 2019-12-11 11:53:57 -08:00
zpl_export.c Eliminate Linux specific inode usage from common code 2019-12-11 11:53:57 -08:00
zpl_file.c Mark functions as static 2020-06-18 12:20:38 -07:00
zpl_inode.c Mark functions as static 2020-06-18 12:20:38 -07:00
zpl_super.c Need a long hold in zpl_mount_impl 2020-09-17 10:53:02 -07:00
zpl_xattr.c Rename acltype=posixacl to acltype=posix 2020-09-16 12:26:06 -07:00
zvol_os.c Linux 5.9 compat: make_request_fn replaced with submit_bio interface 2020-08-11 13:37:33 -07:00