mirror_zfs/lib
Serapheim Dimitropoulos 1c4b0fc745 Race condition between spa async threads and export
In the past we've seen multiple race conditions that have
to do with open-context threads async threads and concurrent
calls to spa_export()/spa_destroy() (including the one
referenced in issue #9015).

This patch ensures that only one thread can execute the
main body of spa_export_common() at a time, with subsequent
threads returning with a new error code created just for
this situation, eliminating this way any race condition
bugs introduced by concurrent calls to this function.

Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Closes #9015
Closes #9044
2019-09-25 11:27:50 -07:00
..
libavl Support -fsanitize=address with --enable-asan 2018-01-10 10:49:27 -08:00
libefi Remove libefi __linux__ wrappers 2018-06-14 09:43:32 -07:00
libicp Add support for selecting encryption backend 2018-08-02 11:59:24 -07:00
libnvpair config: better libtirpc detection 2019-03-02 16:19:05 -08:00
libshare Fedora 28: Fix misc bounds check compiler warnings 2018-08-26 12:55:44 -07:00
libspl ZFS Reads may result in unneccesary calls to zil_commit 2019-03-22 13:09:11 -07:00
libtpool Support -fsanitize=address with --enable-asan 2018-01-10 10:49:27 -08:00
libunicode Support -fsanitize=address with --enable-asan 2018-01-10 10:49:27 -08:00
libuutil Update build system and packaging 2018-05-29 16:00:33 -07:00
libzfs Race condition between spa async threads and export 2019-09-25 11:27:50 -07:00
libzfs_core Use ZFS_DEV macro instead of literals 2019-09-25 11:27:48 -07:00
libzpool Use ZFS_DEV macro instead of literals 2019-09-25 11:27:48 -07:00
libzutil Sort by full path name instead of by GUID when importing 2019-02-26 11:13:15 -08:00
Makefile.am Add libzutil for libzfs or libzpool consumers 2018-11-05 11:22:33 -08:00