diff --git a/include/sys/fs/zfs.h b/include/sys/fs/zfs.h index 07c2776227..001893b716 100644 --- a/include/sys/fs/zfs.h +++ b/include/sys/fs/zfs.h @@ -829,8 +829,8 @@ typedef struct zpool_load_policy { * The location of the pool configuration repository, shared between kernel and * userland. */ +#define ZPOOL_CACHE_BOOT "/boot/zfs/zpool.cache" #define ZPOOL_CACHE "/etc/zfs/zpool.cache" - /* * vdev states are ordered from least to most healthy. * A vdev that's CANT_OPEN or below is considered unusable. diff --git a/module/zfs/spa_config.c b/module/zfs/spa_config.c index b30c65e71e..95dd19844b 100644 --- a/module/zfs/spa_config.c +++ b/module/zfs/spa_config.c @@ -100,6 +100,10 @@ spa_config_load(void) err = zfs_file_open(pathname, O_RDONLY, 0, &fp); +#ifdef __FreeBSD__ + if (err) + err = zfs_file_open(ZPOOL_CACHE_BOOT, O_RDONLY, 0, &fp); +#endif kmem_free(pathname, MAXPATHLEN); if (err)