]> granicus.if.org Git - zfs/commit - tests/runfiles/linux.run
nopwrites on dmu_sync-ed blocks can result in a panic
authorGeorge Wilson <george.wilson@delphix.com>
Fri, 28 Jun 2019 19:40:24 +0000 (15:40 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 28 Jun 2019 19:40:23 +0000 (12:40 -0700)
commit681a85cb01a9f83b9f742d8fb634edddc68c5679
tree039413ee05c67b4c4670d30161c3dbdefa552ff4
parent765d1f0644658d772addeb9b2dd5039ac43177ad
nopwrites on dmu_sync-ed blocks can result in a panic

After device removal, performing nopwrites on a dmu_sync-ed block
will result in a panic. This panic can show up in two ways:
1. an attempt to issue an IOCTL in vdev_indirect_io_start()
2. a failed comparison of zio->io_bp and zio->io_bp_orig in
   zio_done()
To resolve both of these panics, nopwrites of blocks on indirect
vdevs should be ignored and new allocations should be performed on
concrete vdevs.

Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Reviewed-by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Don Brady <don.brady@delphix.com>
Signed-off-by: George Wilson <gwilson@delphix.com>
Closes #8957
module/zfs/zio.c
tests/runfiles/linux.run
tests/zfs-tests/tests/functional/removal/Makefile.am
tests/zfs-tests/tests/functional/removal/removal_nopwrite.ksh [new file with mode: 0755]