diff options
author | Ryan Moeller <freqlabs@FreeBSD.org> | 2021-07-06 16:00:18 +0000 |
---|---|---|
committer | Ryan Moeller <freqlabs@FreeBSD.org> | 2021-07-06 16:00:18 +0000 |
commit | 53b438b2425c374f6147ac80b3330a9ec08432bb (patch) | |
tree | a09642e97b64fe72c9207ec8219f9b5a110863e3 /cddl/usr.sbin | |
parent | 29e2dbd42c3e2e10e606b3414f4d0c53021d4e86 (diff) | |
download | src-53b438b2425c374f6147ac80b3330a9ec08432bb.tar.gz src-53b438b2425c374f6147ac80b3330a9ec08432bb.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
Diffstat (limited to 'cddl/usr.sbin')
-rw-r--r-- | cddl/usr.sbin/zfsd/case_file.cc | 14 |
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(), |