zfs/cmd/zpool
Don Brady ce2a365f56 Add support for parallel pool exports
Changed spa_export_common() such that it no longer holds the
spa_namespace_lock for the entire duration and instead sets
spa_export_thread to indicate an import is in progress on the
spa.  This allows for an export to a diffent pool to proceed
in parallel while an export is still processing potentially
long operations like spa_unload_log_sm_flush_all().

Calls like spa_lookup() and spa_vdev_enter() that rely on
the spa_namespace_lock to serialize them against a concurrent
export, now wait for any in-progress export thread to complete
before proceeding.

The 'zpool import -a' sub-command also provides multi-threaded
support, using a thread pool to submit the exports in parallel.

Sponsored-By: Klara Inc.
Sponsored-by: Wasabi Technology, Inc.

Signed-off-by: Don Brady <don.brady@klarasystems.com>
2024-05-07 04:34:54 +00:00
..
compatibility.d Add compatibility file sets (ZoL 0.6.1, 0.6.4, OpenZFS 2.1) 2021-04-07 13:24:08 -07:00
os FreeBSD boot code reminder after zpool upgrade 2021-06-09 13:05:34 -07:00
zpool.d Remove basename(1). Clean up/shorten some coreutils pipelines 2022-02-16 17:58:55 -08:00
.gitignore Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08:00
Makefile.am Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_iter.c Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_main.c Add support for parallel pool exports 2024-05-07 04:34:54 +00:00
zpool_util.c OpenZFS restructuring - zpool 2019-09-30 12:16:06 -07:00
zpool_util.h Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_vdev.c Fix various typos 2021-04-07 13:27:11 -07:00