From 1fbda9caee1c6418a8d0eeaed7809a4a420cb37e Mon Sep 17 00:00:00 2001 From: Ryan Libby Date: Tue, 15 Dec 2020 09:20:06 -0800 Subject: [PATCH] spa: avoid type narrowing warning Building the spa module for i386 caused gcc to emit -Wint-to-pointer-cast "cast to pointer from integer of different size" because spa.spa_did was uint64_t but pthread_join (via thread_join in spa_deactivate) takes a pointer (32-bit on i386). Define spa_did to be pointer-size instead. For now spa_did is in fact never non-zero and the thread_join could instead be ifdef'd out, but changing the size of spa_did may be more useful for the future. Reviewed-by: Brian Behlendorf Signed-off-by: Ryan Libby Closes #11336 --- include/sys/spa_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h index 69de75fb6..3eb87d2bb 100644 --- a/include/sys/spa_impl.h +++ b/include/sys/spa_impl.h @@ -377,7 +377,7 @@ struct spa { kcondvar_t spa_proc_cv; /* spa_proc_state transitions */ spa_proc_state_t spa_proc_state; /* see definition */ proc_t *spa_proc; /* "zpool-poolname" process */ - uint64_t spa_did; /* if procp != p0, did of t1 */ + uintptr_t spa_did; /* if procp != p0, did of t1 */ boolean_t spa_autoreplace; /* autoreplace set in open */ int spa_vdev_locks; /* locks grabbed */ uint64_t spa_creation_version; /* version at pool creation */