From: Igor Fedotov Date: Wed, 15 Apr 2026 15:46:56 +0000 (+0300) Subject: extblkdev/fcm: do not abort on multi-device volume before we discovered it's FCM one X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=990c0af5966eed6feca46c48b8e98299b8089c1a;p=ceph.git extblkdev/fcm: do not abort on multi-device volume before we discovered it's FCM one https://tracker.ceph.com/issues/75819 Signed-off-by: Igor Fedotov --- diff --git a/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc b/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc index dbf77c8e1660..abcc18249c89 100644 --- a/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc +++ b/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc @@ -307,9 +307,6 @@ public: // determine device name for underlying hardware std::set raw_devices; get_raw_devices(logdevname, &raw_devices); - if (raw_devices.size() > 1) { - ceph_abort("Device " + logdevname_a + " consist of "+ raw_devices.size() + " devices: " + raw_devices); - } for (auto& d : raw_devices) { std::string devpath = "/sys/block/" + d + "/device/"; uint32_t vendor; @@ -319,6 +316,13 @@ public: << " vendor=" << vendor << " at " << devpath << dendl; // get vendor and device id of underlying hardware, compare with FCM ids if (vendor == 0x1014 && device == 0x0634) { + if (raw_devices.size() > 1) { + derr << __func__ + << "Device " << logdevname_a << " consist of " << raw_devices.size() + << " devices: " << raw_devices + << dendl; + ceph_abort("Multi-device volumes are unsupported for FCM plugin"); + } fcm_devices.push_back(fcm_dev(d)); dout(1) << __func__ << " Found FCM vendor/device id on " << d << dendl; }