From d6d308003b2c291f28c0c9defd4895c76137f89c Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Mon, 2 Sep 2024 22:14:27 +0200 Subject: [PATCH] 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 --- src/librbd/migration/NBDStream.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/librbd/migration/NBDStream.cc b/src/librbd/migration/NBDStream.cc index 2513f156efdbc..b4d30206c631b 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); } -- 2.39.5