[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/12] qemu-ga: build_fs_mount_list(): take an Error
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 05/12] qemu-ga: build_fs_mount_list(): take an Error argument |
Date: |
Tue, 8 Jan 2013 17:00:02 -0600 |
From: Luiz Capitulino <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
---
qga/commands-posix.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 247e8dc..f7b85b2 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -371,7 +371,7 @@ static void free_fs_mount_list(FsMountList *mounts)
/*
* Walk the mount table and build a list of local file systems
*/
-static int build_fs_mount_list(FsMountList *mounts)
+static void build_fs_mount_list(FsMountList *mounts, Error **err)
{
struct mntent *ment;
FsMount *mount;
@@ -380,8 +380,8 @@ static int build_fs_mount_list(FsMountList *mounts)
fp = setmntent(mtab, "r");
if (!fp) {
- g_warning("fsfreeze: unable to read mtab");
- return -1;
+ error_setg(err, "failed to open mtab file: '%s'", mtab);
+ return;
}
while ((ment = getmntent(fp))) {
@@ -405,8 +405,6 @@ static int build_fs_mount_list(FsMountList *mounts)
}
endmntent(fp);
-
- return 0;
}
#endif
@@ -433,15 +431,17 @@ int64_t qmp_guest_fsfreeze_freeze(Error **err)
int ret = 0, i = 0;
FsMountList mounts;
struct FsMount *mount;
+ Error *local_err = NULL;
int fd;
char err_msg[512];
slog("guest-fsfreeze called");
QTAILQ_INIT(&mounts);
- ret = build_fs_mount_list(&mounts);
- if (ret < 0) {
- return ret;
+ build_fs_mount_list(&mounts, &local_err);
+ if (error_is_set(&local_err)) {
+ error_propagate(err, local_err);
+ return -1;
}
/* cannot risk guest agent blocking itself on a write in this state */
@@ -498,12 +498,12 @@ int64_t qmp_guest_fsfreeze_thaw(Error **err)
FsMountList mounts;
FsMount *mount;
int fd, i = 0, logged;
+ Error *local_err = NULL;
QTAILQ_INIT(&mounts);
- ret = build_fs_mount_list(&mounts);
- if (ret) {
- error_set(err, QERR_QGA_COMMAND_FAILED,
- "failed to enumerate filesystems");
+ build_fs_mount_list(&mounts, &local_err);
+ if (error_is_set(&local_err)) {
+ error_propagate(err, local_err);
return 0;
}
@@ -568,6 +568,7 @@ void qmp_guest_fstrim(bool has_minimum, int64_t minimum,
Error **err)
FsMountList mounts;
struct FsMount *mount;
int fd;
+ Error *local_err = NULL;
char err_msg[512];
struct fstrim_range r = {
.start = 0,
@@ -578,8 +579,9 @@ void qmp_guest_fstrim(bool has_minimum, int64_t minimum,
Error **err)
slog("guest-fstrim called");
QTAILQ_INIT(&mounts);
- ret = build_fs_mount_list(&mounts);
- if (ret < 0) {
+ build_fs_mount_list(&mounts, &local_err);
+ if (error_is_set(&local_err)) {
+ error_propagate(err, local_err);
return;
}
--
1.7.9.5
- [Qemu-devel] [PULL 0/12] qemu-ga: error handling improvements and fsfreeze hooks, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 01/12] qemu-ga: guest_file_handle_find(): take an Error argument, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 02/12] qemu-ga: qmp_guest_file_close(): fix fclose() error check, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 03/12] qemu-ga: qmp_guest_file_*: improve error reporting, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 04/12] qemu-ga: qmp_guest_shutdown(): improve error reporting, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 05/12] qemu-ga: build_fs_mount_list(): take an Error argument,
Michael Roth <=
- [Qemu-devel] [PATCH 06/12] qemu-ga: qmp_guest_fsfreeze_*(): get rid of sprintf() + error_set(), Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 08/12] qemu-ga: qmp_guest_network_get_interfaces(): get rid of snprintf() + error_set(), Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 09/12] qemu-ga: bios_supports_mode(): improve error reporting, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 07/12] qemu-ga: qmp_guest_fstrim(): get rid of sprintf() + error_set(), Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 10/12] qemu-ga: guest_suspend(): improve error reporting, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 11/12] qemu-ga: execute hook to quiesce the guest on fsfreeze-freeze/thaw, Michael Roth, 2013/01/08
- [Qemu-devel] [PATCH 12/12] qemu-ga: sample fsfreeze hooks, Michael Roth, 2013/01/08
- Re: [Qemu-devel] [PULL 0/12] qemu-ga: error handling improvements and fsfreeze hooks, Anthony Liguori, 2013/01/09