[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87df2da43513408f96da2185be680cd3@SN2PR03MB061.namprd03.prod.outlook.com>
Date: Tue, 26 Mar 2013 18:25:35 +0000
From: KY Srinivasan <kys@...rosoft.com>
To: Paolo Bonzini <pbonzini@...hat.com>
CC: "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"devel@...uxdriverproject.org" <devel@...uxdriverproject.org>,
"olaf@...fle.de" <olaf@...fle.de>,
"apw@...onical.com" <apw@...onical.com>,
"jasowang@...hat.com" <jasowang@...hat.com>,
Evgeniy Polyakov <zbr@...emap.net>
Subject: RE: [PATCH V2 1/1] Drivers: hv: Add a new driver to support host
initiated backup
> -----Original Message-----
> From: Paolo Bonzini [mailto:paolo.bonzini@...il.com] On Behalf Of Paolo
> Bonzini
> Sent: Tuesday, March 26, 2013 5:02 AM
> To: KY Srinivasan
> Cc: gregkh@...uxfoundation.org; linux-kernel@...r.kernel.org;
> devel@...uxdriverproject.org; olaf@...fle.de; apw@...onical.com;
> jasowang@...hat.com; Evgeniy Polyakov
> Subject: Re: [PATCH V2 1/1] Drivers: hv: Add a new driver to support host
> initiated backup
>
> > diff --git a/tools/hv/hv_vss_daemon.c b/tools/hv/hv_vss_daemon.c
> > new file mode 100644
> > index 0000000..9526995
> > --- /dev/null
> > +++ b/tools/hv/hv_vss_daemon.c
> > @@ -0,0 +1,220 @@
> > +/*
> > + * An implementation of the host initiated guest snapshot for Hyper-V.
> > + *
> > + *
> > + * Copyright (C) 2013, Microsoft, Inc.
> > + * Author : K. Y. Srinivasan <kys@...rosoft.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License version 2 as published
> > + * by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE
> or
> > + * NON INFRINGEMENT. See the GNU General Public License for more
> > + * details.
> > + *
> > + */
> > +
> > +
> > +#include <sys/types.h>
> > +#include <sys/socket.h>
> > +#include <sys/poll.h>
> > +#include <linux/types.h>
> > +#include <stdio.h>
> > +#include <stdlib.h>
> > +#include <unistd.h>
> > +#include <string.h>
> > +#include <ctype.h>
> > +#include <errno.h>
> > +#include <arpa/inet.h>
> > +#include <linux/connector.h>
> > +#include <linux/hyperv.h>
> > +#include <linux/netlink.h>
> > +#include <syslog.h>
> > +
> > +static char vss_recv_buffer[4096];
> > +static char vss_send_buffer[4096];
> > +static struct sockaddr_nl addr;
> > +
> > +#ifndef SOL_NETLINK
> > +#define SOL_NETLINK 270
> > +#endif
> > +
> > +
> > +static int vss_operate(int operation)
> > +{
> > + char *fs_op;
> > + char cmd[512];
> > + char buf[512];
> > + FILE *file;
> > + char *p;
> > + char *x;
> > + int error;
> > +
> > + switch (operation) {
> > + case VSS_OP_FREEZE:
> > + fs_op = "-f ";
> > + break;
> > + case VSS_OP_THAW:
> > + fs_op = "-u ";
> > + break;
> > + }
> > +
> > + file = popen("mount | awk '/^\/dev\// { print $3}'", "r");
> > + if (file == NULL)
> > + return;
> > +
> > + while ((p = fgets(buf, sizeof(buf), file)) != NULL) {
> > + x = strchr(p, '\n');
> > + *x = '\0';
> > + if (!strncmp(p, "/", sizeof("/")))
> > + continue;
> > +
> > + sprintf(cmd, "%s %s %s", "fsfreeze ", fs_op, p);
>
> Please use getmntent and FIFREEZE/FITHAW.
I think Olaf has already addressed this in the recent patches he has sent.
>
> However, I wonder if a dedicated daemon is really the best mechanism.
> Perhaps you can use uevents instead, and trigger the freeze/thaw with
> udev rules?
I need to be able to return errors back from the freeze/thaw operations.
Regards,
K. Y
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists