Message ID | CAAu8pHvsOdYB=zbdeOgadmNdVjQ5wdGod_trQVsQdriLmbyB_g@mail.gmail.com |
---|---|
State | New |
Headers | show |
On Fri, 22 Jul 2011 21:56:39 +0300 Blue Swirl <blauwirbel@gmail.com> wrote: > Fix build breakage on non-Linux hosts. > > Signed-off-by: Blue Swirl <blauwirbel@gmail.com> Looks good to me. This will return a command not found error, maybe unsupported is better, but can be done later. > --- > qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++- > 1 files changed, 24 insertions(+), 1 deletions(-) > > diff --git a/qga/guest-agent-commands.c b/qga/guest-agent-commands.c > index 8c0d67e..918aaa2 100644 > --- a/qga/guest-agent-commands.c > +++ b/qga/guest-agent-commands.c > @@ -11,10 +11,12 @@ > */ > > #include <glib.h> > -#include <mntent.h> > #include <sys/types.h> > #include <sys/ioctl.h> > +#ifdef __linux__ > +#include <mntent.h> > #include <linux/fs.h> > +#endif > #include "qga/guest-agent-core.h" > #include "qga-qmp-commands.h" > #include "qerror.h" > @@ -22,6 +24,7 @@ > > static GAState *ga_state; > > +#ifdef __linux__ > static void disable_logging(void) > { > ga_disable_logging(ga_state); > @@ -31,6 +34,7 @@ static void enable_logging(void) > { > ga_enable_logging(ga_state); > } > +#endif > > /* Note: in some situations, like with the fsfreeze, logging may be > * temporarilly disabled. if it is necessary that a command be able > @@ -323,6 +327,7 @@ static void guest_file_init(void) > QTAILQ_INIT(&guest_file_state.filehandles); > } > > +#ifdef __linux__ > typedef struct GuestFsfreezeMount { > char *dirname; > char *devtype; > @@ -508,11 +513,29 @@ static void guest_fsfreeze_cleanup(void) > } > } > } > +#else > +GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **err) > +{ > + return GUEST_FSFREEZE_STATUS_ERROR; > +} > + > +int64_t qmp_guest_fsfreeze_freeze(Error **err) > +{ > + return -1; > +} > + > +int64_t qmp_guest_fsfreeze_thaw(Error **err) > +{ > + return 0; > +} > +#endif > > /* register init/cleanup routines for stateful command groups */ > void ga_command_state_init(GAState *s, GACommandState *cs) > { > ga_state = s; > +#ifdef __linux__ > ga_command_state_add(cs, guest_fsfreeze_init, guest_fsfreeze_cleanup); > +#endif > ga_command_state_add(cs, guest_file_init, NULL); > }
On 07/22/2011 01:56 PM, Blue Swirl wrote: > Fix build breakage on non-Linux hosts. > > Signed-off-by: Blue Swirl<blauwirbel@gmail.com> The patch I sent was similar but QAPI commands don't use in-band error reporting so it set the out-of-band error. I'll push my version if you can confirm it addresses the build issue. Regards, Anthony Liguori > --- > qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++- > 1 files changed, 24 insertions(+), 1 deletions(-) > > diff --git a/qga/guest-agent-commands.c b/qga/guest-agent-commands.c > index 8c0d67e..918aaa2 100644 > --- a/qga/guest-agent-commands.c > +++ b/qga/guest-agent-commands.c > @@ -11,10 +11,12 @@ > */ > > #include<glib.h> > -#include<mntent.h> > #include<sys/types.h> > #include<sys/ioctl.h> > +#ifdef __linux__ > +#include<mntent.h> > #include<linux/fs.h> > +#endif > #include "qga/guest-agent-core.h" > #include "qga-qmp-commands.h" > #include "qerror.h" > @@ -22,6 +24,7 @@ > > static GAState *ga_state; > > +#ifdef __linux__ > static void disable_logging(void) > { > ga_disable_logging(ga_state); > @@ -31,6 +34,7 @@ static void enable_logging(void) > { > ga_enable_logging(ga_state); > } > +#endif > > /* Note: in some situations, like with the fsfreeze, logging may be > * temporarilly disabled. if it is necessary that a command be able > @@ -323,6 +327,7 @@ static void guest_file_init(void) > QTAILQ_INIT(&guest_file_state.filehandles); > } > > +#ifdef __linux__ > typedef struct GuestFsfreezeMount { > char *dirname; > char *devtype; > @@ -508,11 +513,29 @@ static void guest_fsfreeze_cleanup(void) > } > } > } > +#else > +GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **err) > +{ > + return GUEST_FSFREEZE_STATUS_ERROR; > +} > + > +int64_t qmp_guest_fsfreeze_freeze(Error **err) > +{ > + return -1; > +} > + > +int64_t qmp_guest_fsfreeze_thaw(Error **err) > +{ > + return 0; > +} > +#endif > > /* register init/cleanup routines for stateful command groups */ > void ga_command_state_init(GAState *s, GACommandState *cs) > { > ga_state = s; > +#ifdef __linux__ > ga_command_state_add(cs, guest_fsfreeze_init, guest_fsfreeze_cleanup); > +#endif > ga_command_state_add(cs, guest_file_init, NULL); > }
On Fri, Jul 22, 2011 at 10:18 PM, Anthony Liguori <anthony@codemonkey.ws> wrote: > On 07/22/2011 01:56 PM, Blue Swirl wrote: >> >> Fix build breakage on non-Linux hosts. >> >> Signed-off-by: Blue Swirl<blauwirbel@gmail.com> > > The patch I sent was similar but QAPI commands don't use in-band error > reporting so it set the out-of-band error. Which patch? > I'll push my version if you can confirm it addresses the build issue. > > Regards, > > Anthony Liguori > >> --- >> qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++- >> 1 files changed, 24 insertions(+), 1 deletions(-) >> >> diff --git a/qga/guest-agent-commands.c b/qga/guest-agent-commands.c >> index 8c0d67e..918aaa2 100644 >> --- a/qga/guest-agent-commands.c >> +++ b/qga/guest-agent-commands.c >> @@ -11,10 +11,12 @@ >> */ >> >> #include<glib.h> >> -#include<mntent.h> >> #include<sys/types.h> >> #include<sys/ioctl.h> >> +#ifdef __linux__ >> +#include<mntent.h> >> #include<linux/fs.h> >> +#endif >> #include "qga/guest-agent-core.h" >> #include "qga-qmp-commands.h" >> #include "qerror.h" >> @@ -22,6 +24,7 @@ >> >> static GAState *ga_state; >> >> +#ifdef __linux__ >> static void disable_logging(void) >> { >> ga_disable_logging(ga_state); >> @@ -31,6 +34,7 @@ static void enable_logging(void) >> { >> ga_enable_logging(ga_state); >> } >> +#endif >> >> /* Note: in some situations, like with the fsfreeze, logging may be >> * temporarilly disabled. if it is necessary that a command be able >> @@ -323,6 +327,7 @@ static void guest_file_init(void) >> QTAILQ_INIT(&guest_file_state.filehandles); >> } >> >> +#ifdef __linux__ >> typedef struct GuestFsfreezeMount { >> char *dirname; >> char *devtype; >> @@ -508,11 +513,29 @@ static void guest_fsfreeze_cleanup(void) >> } >> } >> } >> +#else >> +GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **err) >> +{ >> + return GUEST_FSFREEZE_STATUS_ERROR; >> +} >> + >> +int64_t qmp_guest_fsfreeze_freeze(Error **err) >> +{ >> + return -1; >> +} >> + >> +int64_t qmp_guest_fsfreeze_thaw(Error **err) >> +{ >> + return 0; >> +} >> +#endif >> >> /* register init/cleanup routines for stateful command groups */ >> void ga_command_state_init(GAState *s, GACommandState *cs) >> { >> ga_state = s; >> +#ifdef __linux__ >> ga_command_state_add(cs, guest_fsfreeze_init, >> guest_fsfreeze_cleanup); >> +#endif >> ga_command_state_add(cs, guest_file_init, NULL); >> } > >
From 17d31722bd6cd92e414028f44e9b49238fe83bd4 Mon Sep 17 00:00:00 2001 Message-Id: <17d31722bd6cd92e414028f44e9b49238fe83bd4.1311360984.git.blauwirbel@gmail.com> From: Blue Swirl <blauwirbel@gmail.com> Date: Fri, 22 Jul 2011 18:53:46 +0000 Subject: [PATCH] qga: fsfreeze is only supported on Linux Fix build breakage on non-Linux hosts. Signed-off-by: Blue Swirl <blauwirbel@gmail.com> --- qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) diff --git a/qga/guest-agent-commands.c b/qga/guest-agent-commands.c index 8c0d67e..918aaa2 100644 --- a/qga/guest-agent-commands.c +++ b/qga/guest-agent-commands.c @@ -11,10 +11,12 @@ */ #include <glib.h> -#include <mntent.h> #include <sys/types.h> #include <sys/ioctl.h> +#ifdef __linux__ +#include <mntent.h> #include <linux/fs.h> +#endif #include "qga/guest-agent-core.h" #include "qga-qmp-commands.h" #include "qerror.h" @@ -22,6 +24,7 @@ static GAState *ga_state; +#ifdef __linux__ static void disable_logging(void) { ga_disable_logging(ga_state); @@ -31,6 +34,7 @@ static void enable_logging(void) { ga_enable_logging(ga_state); } +#endif /* Note: in some situations, like with the fsfreeze, logging may be * temporarilly disabled. if it is necessary that a command be able @@ -323,6 +327,7 @@ static void guest_file_init(void) QTAILQ_INIT(&guest_file_state.filehandles); } +#ifdef __linux__ typedef struct GuestFsfreezeMount { char *dirname; char *devtype; @@ -508,11 +513,29 @@ static void guest_fsfreeze_cleanup(void) } } } +#else +GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **err) +{ + return GUEST_FSFREEZE_STATUS_ERROR; +} + +int64_t qmp_guest_fsfreeze_freeze(Error **err) +{ + return -1; +} + +int64_t qmp_guest_fsfreeze_thaw(Error **err) +{ + return 0; +} +#endif /* register init/cleanup routines for stateful command groups */ void ga_command_state_init(GAState *s, GACommandState *cs) { ga_state = s; +#ifdef __linux__ ga_command_state_add(cs, guest_fsfreeze_init, guest_fsfreeze_cleanup); +#endif ga_command_state_add(cs, guest_file_init, NULL); } -- 1.7.2.5
Fix build breakage on non-Linux hosts. Signed-off-by: Blue Swirl <blauwirbel@gmail.com> --- qga/guest-agent-commands.c | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-)