From: Ilya Dryomov Date: Mon, 2 Sep 2024 20:14:27 +0000 (+0200) Subject: librbd/migration/NBDStream: check for nbd_get_size() errors X-Git-Tag: testing/wip-pdonnell-testing-20240916.200549-debug~69^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d6d308003b2c291f28c0c9defd4895c76137f89c;p=ceph-ci.git librbd/migration/NBDStream: check for nbd_get_size() errors nbd_get_size() can fail with EOVERFLOW and possibly other errors. Signed-off-by: Ilya Dryomov --- diff --git a/src/librbd/migration/NBDStream.cc b/src/librbd/migration/NBDStream.cc index 2513f156efd..b4d30206c63 100644 --- a/src/librbd/migration/NBDStream.cc +++ b/src/librbd/migration/NBDStream.cc @@ -277,7 +277,16 @@ template void NBDStream::get_size(uint64_t* size, Context* on_finish) { ldout(m_cct, 20) << dendl; - *size = nbd_get_size(m_nbd); + int64_t rc = nbd_get_size(m_nbd); + if (rc == -1) { + rc = nbd_get_errno(); + lderr(m_cct) << "get_size: " << nbd_get_error() + << " (errno = " << rc << ")" << dendl; + on_finish->complete(from_nbd_errno(rc)); + return; + } + + *size = rc; on_finish->complete(0); }