aboutsummaryrefslogtreecommitdiff
path: root/cddl
diff options
context:
space:
mode:
authorRyan Moeller <freqlabs@FreeBSD.org>2021-07-06 16:00:18 +0000
committerRyan Moeller <freqlabs@FreeBSD.org>2021-07-13 15:44:32 +0000
commitd5a71c929dfaab37bf7a8a9278d8cf1e8dfaa4ef (patch)
tree0c908b3c4227a02ea51edef382d09db5972c3615 /cddl
parenta469b89bf206731430f26e975d120c4485b71e23 (diff)
downloadsrc-d5a71c929dfaab37bf7a8a9278d8cf1e8dfaa4ef.tar.gz
src-d5a71c929dfaab37bf7a8a9278d8cf1e8dfaa4ef.zip
zfsd: Check for error from zpool_vdev_online
Onlining a vdev can fail. Log the error if it does. Reviewed by: mav, asomers MFC after: 1 week Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D30882 (cherry picked from commit 53b438b2425c374f6147ac80b3330a9ec08432bb)
Diffstat (limited to 'cddl')
-rw-r--r--cddl/usr.sbin/zfsd/case_file.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/cddl/usr.sbin/zfsd/case_file.cc b/cddl/usr.sbin/zfsd/case_file.cc
index da2125b4d716..8da711fc10cb 100644
--- a/cddl/usr.sbin/zfsd/case_file.cc
+++ b/cddl/usr.sbin/zfsd/case_file.cc
@@ -280,9 +280,17 @@ CaseFile::ReEvaluate(const string &devPath, const string &physPath, Vdev *vdev)
|| vdev->PoolGUID() == Guid::InvalidGuid())
&& vdev->GUID() == m_vdevGUID) {
- zpool_vdev_online(pool, vdev->GUIDString().c_str(),
- ZFS_ONLINE_CHECKREMOVE | ZFS_ONLINE_UNSPARE,
- &m_vdevState);
+ if (zpool_vdev_online(pool, vdev->GUIDString().c_str(),
+ ZFS_ONLINE_CHECKREMOVE | ZFS_ONLINE_UNSPARE,
+ &m_vdevState) != 0) {
+ syslog(LOG_ERR,
+ "Failed to online vdev(%s/%s:%s): %s: %s\n",
+ zpool_get_name(pool), vdev->GUIDString().c_str(),
+ devPath.c_str(), libzfs_error_action(g_zfsHandle),
+ libzfs_error_description(g_zfsHandle));
+ return (/*consumed*/false);
+ }
+
syslog(LOG_INFO, "Onlined vdev(%s/%s:%s). State now %s.\n",
zpool_get_name(pool), vdev->GUIDString().c_str(),
devPath.c_str(),