Hi Yasmin,
On 02/09/2018 05:31 PM, Yasmin Beatriz wrote:
This patch intends to make a more specific message for when
the system has not enough space to save guest memory.
Reported-by: yilzh...@redhat.com
Cc: Jose Ricardo Ziviani <jos...@linux.vnet.ibm.com>
Signed-off-by: Yasmin Beatriz <yasm...@linux.vnet.ibm.com>
---
dump.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dump.c b/dump.c
index e9dfed060a..eb56ff53f6 100644
--- a/dump.c
+++ b/dump.c
@@ -106,6 +106,9 @@ static int fd_write_vmcore(const void *buf, size_t size,
void *opaque)
written_size = qemu_write_full(s->fd, buf, size);
if (written_size != size) {
+ if (errno == ENOSPC) {
+ return -ENOSPC;
+ }
You can do like this:
if (written_size != size) {
+ return -errno;
+ }
Everyone is checking for a negative "ret" to see if an error occurred in
qemu_write_full.
There is no negative errno AFAIK, so you can spare one "if" clause there
and still
check for -ENOSPC down there.
It might be worth checking if this code can't be baked into
qemu_write_full too.
Thanks,
Daniel
return -1;
}
@@ -364,7 +367,11 @@ static void write_data(DumpState *s, void *buf, int
length, Error **errp)
ret = fd_write_vmcore(buf, length, s);
if (ret < 0) {
- error_setg(errp, "dump: failed to save memory");
+ if (ret == -ENOSPC) {
+ error_setg(errp, "dump: not enough space to save memory");
+ } else {
+ error_setg(errp, "dump: failed to save memory");
+ }
} else {
s->written_size += length;
}