freebsd-dev/sys
Andriy Gapon 04b7c6b337 MFV r316928: 7256 low probability race in zfs_get_data
illumos/illumos-gate@0c94e1af67
0c94e1af67

https://www.illumos.org/issues/7256
                         error = dmu_sync(zio, lr->lr_common.lrc_txg,
                              zfs_get_done, zgd);
                         ASSERT(error || lr->lr_length <= zp->z_blksz);
  It's possible, although extremely rare, that the zfs_get_done() callback is
  executed before dmu_sync() returns.
  In that case the znode's range lock is dropped and the znode is unreferenced.
  Thus, the assertion can access some invalid or wrong data via the zp pointer.
  size variable caches the correct value of z_blksz and can be safely used here.

Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Andriy Gapon <andriy.gapon@clusterhq.com>

MFC after:	1 week
2017-05-26 10:31:05 +00:00
..
amd64 Bump default MAXTSIZ (kern.maxtsiz) from 128MB to 32GB. The old limit 2017-05-17 08:38:41 +00:00
arm Unmask legacy interrupts on Marvell PCIE controller 2017-05-25 14:34:21 +00:00
arm64 Add COMPAT_FREEBSD11 on arm64, the arch is almost tier-1. 2017-05-23 13:57:55 +00:00
boot Pass -N directly to ld via -Wl rather than passing it to the compiler driver. 2017-05-23 17:41:09 +00:00
bsm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
cam Add basic programmable early warning error injection to the sa(4) driver. 2017-05-05 20:00:53 +00:00
cddl MFV r316928: 7256 low probability race in zfs_get_data 2017-05-26 10:31:05 +00:00
compat Followup to r318765 (capsicumize cpuset_*affinity) 2017-05-24 01:01:57 +00:00
conf cxgbe(4): Update the T4, T5, and T6 firmwares to 1.16.45.0. 2017-05-23 23:40:17 +00:00
contrib Ifdef out a redundant if statement when LARGE_NAT is disabled. 2017-05-24 14:36:51 +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 [ath] fix short-GI wireshark flag. 2017-05-26 00:48:21 +00:00
fs Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
gdb
geom Fix typo. 2017-05-18 08:25:07 +00:00
gnu [mips] [rt2880] Add oldest Ralink MIPS SOC RT2880 support code. 2017-05-06 06:20:34 +00:00
i386 Remove the BSD/OS 2.1 system call gate LDT entry. 2017-05-23 22:34:18 +00:00
isa Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kern Followup to r318765 (capsicumize cpuset_*affinity) 2017-05-24 01:01:57 +00:00
kgssapi
libkern Sync qsort.c with userland r318515. 2017-05-19 06:37:16 +00:00
mips Remove superfluous parentheses. 2017-05-23 12:00:08 +00:00
modules [ath] [ath_hal] (etc, etc) - begin the task of re-modularising the HAL. 2017-05-25 04:18:46 +00:00
net Remove some code, dead from the day one. 2017-05-25 23:19:09 +00:00
net80211 [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
netgraph Make cached Bluetooth LE host advertise information visible from userland. 2017-04-27 15:03:24 +00:00
netinet o Rearrange struct inpcb fields to optimize the TCP output code path 2017-05-24 17:47:16 +00:00
netinet6 The connect() system call should return -1 and set errno to EAFNOSUPPORT 2017-05-22 15:29:10 +00:00
netipsec Fix possible double releasing for SA and SP references. 2017-05-23 09:32:26 +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 All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
opencrypto Use const with some read-only buffers in opencrypto APIs. 2017-05-09 18:28:42 +00:00
powerpc Add a driver for the Chelsio T6 crypto accelerator engine. 2017-05-17 22:13:07 +00:00
riscv Follow r317061 "Remove struct vmmeter from struct pcpu" 2017-04-19 17:06:32 +00:00
rpc Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
security Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
sparc64 fix sparc64 build by restoring 'register' in pcpu.h 2017-05-17 16:32:24 +00:00
sys Add BIT_OR2(), BIT_AND2(), BIT_NAND2(), BIT_XOR() and BIT_XOR2(). 2017-05-24 10:09:54 +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 Declare the "snd_fxdiv_table" once. This shaves around 24Kbytes of 2017-05-25 05:23:47 +00:00
ufs Remove spl() calls from UFS code. 2017-05-07 14:59:45 +00:00
vm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
x86 Remove constants and comments for unimplemented entries in the default LDT. 2017-05-24 18:54:21 +00:00
xdr
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