From 0a2ea859565e6e437590c25d9c88f738c5c2376f Mon Sep 17 00:00:00 2001 From: songweibin Date: Fri, 31 Aug 2018 15:41:52 +0800 Subject: [PATCH] rbd: fix error import when the input is a pipe Fixes: http://tracker.ceph.com/issues/34536 Signed-off-by: songweibin (cherry picked from commit 3168d21629eb4d33f95dbd9399225e3e3817dc4f) --- src/tools/rbd/action/Import.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/tools/rbd/action/Import.cc b/src/tools/rbd/action/Import.cc index b7ab85d7825..8a024d336c9 100644 --- a/src/tools/rbd/action/Import.cc +++ b/src/tools/rbd/action/Import.cc @@ -639,7 +639,7 @@ static int decode_imagemeta(int fd, uint64_t length, std::map* imagemetas) { // There is no header in v1 image. @@ -647,10 +647,6 @@ static int do_import_header(int fd, int import_format, uint64_t &size, librbd::I return 0; } - if (fd == STDIN_FILENO || size < utils::RBD_IMAGE_BANNER_V2.size()) { - return -EINVAL; - } - int r; r = validate_banner(fd, utils::RBD_IMAGE_BANNER_V2); if (r < 0) { @@ -885,7 +881,7 @@ static int do_import(librados::Rados &rados, librbd::RBD &rbd, #endif } - r = do_import_header(fd, import_format, size, opts, &imagemetas); + r = do_import_header(fd, import_format, opts, &imagemetas); if (r < 0) { std::cerr << "rbd: import header failed." << std::endl; goto done; -- 2.47.3