> -----Original Message-----
> From: Olaf Hering [mailto:o...@aepfle.de]
> Sent: Tuesday, March 12, 2013 2:49 PM
> To: KY Srinivasan
> Cc: gre...@linuxfoundation.org; linux-kernel@vger.kernel.org;
> de...@linuxdriverproject.org; a...@canonical.com; jasow...@redhat.com;
> Evgeniy Polyakov
> Subject: Re: [PATCH 1/1] Drivers: hv: Add a new driver to support host 
> initiated
> backup
> 
> On Tue, Mar 12, K. Y. Srinivasan wrote:
> 
> > +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;
> > +   }
> > +
> > +   sprintf(cmd, "%s", "mount | grep ^/dev/ | awk '{print $3 }'");
> 
> I think this can be char cmd[] = "mount | awk '/^\/dev\/ { print $3'";

Yes; will make the change.
> 
> > +   file = popen(cmd, "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);
> > +           syslog(LOG_INFO, "VSS cmd is %s\n", cmd);
> > +           error = system(cmd);
> 
> error is not handled here, and it looks like only one error can be
> reported anyway.
> In case of an error, will the host thaw the filesystems?

Both freeze and thaw operations will not fail if properly applied. The only 
time the
freeze operation fails is when there is already an active freeze in force. 
Likewise,
the only time thaw fails is when there has not been a preceding freeze 
operation. So these
errors will occur only when the VM user happens to be applying freeze/thaw 
operations
independent of the host. In this case, the host simply reports an error on the 
host on
the backup operation and nothing else is done.

Regards,

K. Y 
> 
> > +   }
> > +   pclose(file);
> > +
> > +   sprintf(cmd, "%s %s %s", "fsfreeze ", fs_op, "/");
> > +   syslog(LOG_INFO, "VSS cmd is %s\n", cmd);
> > +   error = system(cmd);
> > +
> > +   return error;
> > +}
> 
> 

Reply via email to