freebsd-dev/sys
Andriy Gapon 3385c74539 MFV r319950: 5220 L2ARC does not support devices that do not provide 512B access
FreeBSD note: the actual change has been in FreeBSD since r297848.  This
commit accounts for integration of that change with subsequent changes,
especially r320156 (MFV of r318946) and r314274.

illumos/illumos-gate@403a8da73c
403a8da73c

https://www.illumos.org/issues/5220
  There are disk devices that have logical sector size larger than 512B, for
  example 4KB. That is, their physical sector size is larger than 512B and they
  do not provide emulation for 512B sector sizes. For such devices both a data
  offset and a data size must be properly aligned. L2ARC should arrange that
  because it uses physical I/O.
  zio_vdev_io_start() performs a necessary transformation if io_size is not
  aligned to vdev_ashift, but that is done only for logical I/O. Something
  similar should be done in L2ARC code.
      * a temporary write buffer should be allocated if the original buffer is
        not going to be compressed and its size is not aligned
      * size of a temporary compression buffer should be ashift aligned
      * for the reads, if a size of a target buffer is not sufficiently large and
        it is not aligned then a temporary read buffer should be allocated

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Author: Andriy Gapon <avg@FreeBSD.org>

MFC after:	3 weeks
2017-06-22 17:10:34 +00:00
..
amd64 Move struct syscall_args syscall arguments parameters container into 2017-06-12 21:03:23 +00:00
arm Create root DMA tag and fix MBUS windows on DMA coherent platforms 2017-06-21 18:27:05 +00:00
arm64 Move struct syscall_args syscall arguments parameters container into 2017-06-12 21:03:23 +00:00
boot Make structure padding explicit in EFI_MEMORY_DESCRIPTOR 2017-06-22 14:30:09 +00:00
bsm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
cam Fix a potential sleep while holding a mutex in the sa(4) driver. 2017-06-19 20:48:00 +00:00
cddl MFV r319950: 5220 L2ARC does not support devices that do not provide 512B access 2017-06-22 17:10:34 +00:00
compat Update io-mapping.h in the LinuxKPI. 2017-06-21 18:20:17 +00:00
conf retire arm64 kernel module linker workaround 2017-06-22 15:09:42 +00:00
contrib Avoid including list.h in LinuxKPI headers. 2017-06-18 16:43:57 +00:00
crypto Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ddb Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
dev Update io-mapping.h in the LinuxKPI. 2017-06-21 18:20:17 +00:00
fs ext2fs: add dir_nlink feature support. 2017-06-22 02:43:32 +00:00
gdb
geom Add MD_VERIFY option to enable O_VERIFY in open for vnode type. 2017-05-31 21:18:11 +00:00
gnu Update the GNU DTS file from Linux 4.11 2017-06-20 03:13:49 +00:00
i386 Correct translations between abridged and full x87 tags. 2017-06-17 11:25:31 +00:00
isa Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kern Fix the !TD_IS_IDLETHREAD(curthread) locking assertions. 2017-06-19 21:09:50 +00:00
kgssapi
libkern arm64: add ".arch armv8-a+crc" to allow use of crc instructions 2017-06-08 20:06:09 +00:00
mips [ar71xx] migrate all of the duplicate configuration out into a shared config file. 2017-06-16 00:44:23 +00:00
modules ext2fs: Add uninit_bg feature support. 2017-06-20 14:28:51 +00:00
net Revert r319989 "bnxt(4) Enable LRO support" 2017-06-17 17:42:52 +00:00
net80211 net80211: initialize i_seq for A-MPDU frames. 2017-06-01 20:46:43 +00:00
netgraph Check return value from soaccept(). 2017-06-14 16:13:20 +00:00
netinet Listening sockets improvements. 2017-06-08 21:30:34 +00:00
netinet6 Fix an unnecessary/incorrect check in the PKTOPT_EXTHDRCPY macro. 2017-05-30 14:50:28 +00:00
netipsec Build kdebug_secreplay() function only when IPSEC_DEBUG is defined. 2017-06-01 10:04:12 +00:00
netpfil Fix the queue delay estimation in PIE/FQ-PIE when the timestamp 2017-05-19 08:38:03 +00:00
netsmb
nfs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsclient Add an NFSv4.1 mount option for "use one openowner". 2017-04-13 21:54:19 +00:00
nfsserver Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nlm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
ofed Avoid including list.h in LinuxKPI headers. 2017-06-18 16:43:57 +00:00
opencrypto Use const with some read-only buffers in opencrypto APIs. 2017-05-09 18:28:42 +00:00
powerpc Actually add the mpc85xx_get_platform_clock() function. 2017-06-14 04:26:37 +00:00
riscv Undefine temporary macro. 2017-06-17 07:36:46 +00:00
rpc Listening sockets improvements. 2017-06-08 21:30:34 +00:00
security Correct bitwise test in mac_bsdextended ugidfw_rule_valid() 2017-06-13 01:17:58 +00:00
sparc64 Move struct syscall_args syscall arguments parameters container into 2017-06-12 21:03:23 +00:00
sys sglist.h: Fix sg_refs signedness to match refcount(9) 2017-06-22 15:52:18 +00:00
teken Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
tests style(9): sort headers 2017-05-09 05:08:47 +00:00
tools make.conf: Add the possibility to use another DTC 2017-06-17 23:34:53 +00:00
ufs Mitigate several problems with the softdep_request_cleanup() on busy 2017-06-03 16:18:50 +00:00
vm Call pmap_copy() only for map entries which have the backing object 2017-06-21 18:54:28 +00:00
x86 Fix batched unload for DMAR busdma in qi mode. 2017-06-19 21:48:52 +00:00
xdr * limit size of buffers to RPC_MAXDATASIZE 2017-06-01 06:12:25 +00:00
xen xenstore: fix suspension when using the xenstore device 2017-03-07 09:17:48 +00:00
Makefile Remove glimpse make target added in r181432 2017-05-22 15:53:30 +00:00