qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 3/4] qed: Report error for unsupported features


From: Anthony Liguori
Subject: [Qemu-devel] Re: [PATCH 3/4] qed: Report error for unsupported features
Date: Wed, 09 Feb 2011 05:20:54 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Lightning/1.0b1 Thunderbird/3.0.10

On 02/09/2011 04:32 AM, Kevin Wolf wrote:
Instead of just returning -ENOTSUP, generate a more detailed error.

Unfortunately we don't have a helpful text for features that we don't know yet,
so just print the feature mask. It might be useful at least if someone asks for
help.

Signed-off-by: Kevin Wolf<address@hidden>

We can use a compatible feature to create a feature name table.

---
  block/qed.c |    8 +++++++-
  1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/block/qed.c b/block/qed.c
index 3273448..8b0a975 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -14,6 +14,7 @@

  #include "trace.h"
  #include "qed.h"
+#include "qerror.h"

  static void qed_aio_cancel(BlockDriverAIOCB *blockacb)
  {
@@ -311,7 +312,12 @@ static int bdrv_qed_open(BlockDriverState *bs, int flags)
          return -EINVAL;
      }
      if (s->header.features&  ~QED_FEATURE_MASK) {
-        return -ENOTSUP; /* image uses unsupported feature bits */
+        /* image uses unsupported feature bits */
+        char version[64];
+        snprintf(version, sizeof(version), "%" PRIx64, s->header.features);

It would be useful to do s->header.features & QED_FEATURE_MASK here as a management tool doesn't know what features this version of QED supports.

Regards,

Anthony Liguori

+        qerror_report(QERR_UNKNOWN_BLOCK_FORMAT_FEATURE,
+            bs->device_name, version);
+        return -ENOTSUP;
      }
      if (!qed_is_cluster_size_valid(s->header.cluster_size)) {
          return -EINVAL;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]