]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
librbd/migration/NBDStream: check for nbd_get_size() errors
authorIlya Dryomov <idryomov@gmail.com>
Mon, 2 Sep 2024 20:14:27 +0000 (22:14 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 21 May 2025 15:27:16 +0000 (17:27 +0200)
nbd_get_size() can fail with EOVERFLOW and possibly other errors.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit d6d308003b2c291f28c0c9defd4895c76137f89c)

src/librbd/migration/NBDStream.cc

index 2513f156efdbce19e887dddb50f998300c7b4549..b4d30206c631bcfef86bc2cc287f2faa5ef72a8e 100644 (file)
@@ -277,7 +277,16 @@ template <typename I>
 void NBDStream<I>::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);
 }