From 5ddbfc363e31deb373e1b628811b8d86c6d9f56f Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Mon, 2 Sep 2024 22:21:23 +0200 Subject: [PATCH] librbd/migration/NBDStream: call nbd_shutdown() in close() Avoid warnings like qemu-nbd: Disconnect client, due to: Failed to read request: Unexpected end-of-file before all bytes were read Signed-off-by: Ilya Dryomov (cherry picked from commit e1418e1975753bd3b5fbb7af88e361d3bbf7a1b6) --- src/librbd/migration/NBDStream.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/librbd/migration/NBDStream.cc b/src/librbd/migration/NBDStream.cc index c9eb618a24bfc..57b9b72ba3888 100644 --- a/src/librbd/migration/NBDStream.cc +++ b/src/librbd/migration/NBDStream.cc @@ -263,6 +263,12 @@ void NBDStream::close(Context* on_finish) { ldout(m_cct, 20) << dendl; if (m_nbd != nullptr) { + // send a graceful shutdown to the server + // ignore errors -- we are read-only, also from the client's + // POV there is no disadvantage to abruptly closing the socket + // in nbd_close() + nbd_shutdown(m_nbd, 0); + nbd_close(m_nbd); m_nbd = nullptr; } -- 2.39.5