In qcow2 (and partly also in general block code), error handling doesn't quite
do what it should. In some places, errors are silently ignored. In other
places, the error code in not passed to the called but rather turned into
false, NULL or -EIO. Besides reporting the right error to the user, providing
the right error code is also important for werror=enospc (and possible some
more functions).

This patch series tries to fix the most obvious of them. Don't assume it's
complete and expect a second part some time in the future.

Kevin Wolf (10):
  qcow2: Fix error handling in qcow2_grow_l1_table
  qcow2: Fix error handling in qcow_save_vmstate
  qcow2: Return 0/-errno in get_cluster_table
  qcow2: Return 0/-errno in qcow2_alloc_cluster_offset
  block: Return original error codes in bdrv_pread/write
  qcow2: Fix error handling in grow_refcount_table
  qcow2: Improve error handling in update_refcount
  qcow2: Allow updating no refcounts
  qcow2: Don't ignore update_refcount return value
  qcow2: Don't ignore qcow2_alloc_clusters return value

 block.c                |   34 ++++++++++---------
 block/qcow2-cluster.c  |   84 ++++++++++++++++++++++++++++++++----------------
 block/qcow2-refcount.c |   82 ++++++++++++++++++++++++++++++++++++-----------
 block/qcow2-snapshot.c |   11 ++++++-
 block/qcow2.c          |   41 ++++++++++++-----------
 block/qcow2.h          |    4 +-
 6 files changed, 171 insertions(+), 85 deletions(-)



Reply via email to