watchdog: xen: don't clear is_active when xen_wdt_stop() failed

xen_wdt_release() shouldn't clear is_active even when the watchdog
didn't get stopped (which by itself shouldn't happen, but let's return
a proper error in this case rather than adding a BUG() upon hypercall
failure).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
Jan Beulich 2012-03-19 09:32:28 +00:00 committed by Wim Van Sebroeck
parent 83448bf786
commit 38c484fa13
1 changed files with 5 additions and 3 deletions

View File

@ -132,15 +132,17 @@ static int xen_wdt_open(struct inode *inode, struct file *file)
static int xen_wdt_release(struct inode *inode, struct file *file)
{
int err = 0;
if (expect_release)
xen_wdt_stop();
err = xen_wdt_stop();
else {
pr_crit("unexpected close, not stopping watchdog!\n");
xen_wdt_kick();
}
is_active = false;
is_active = err;
expect_release = false;
return 0;
return err;
}
static ssize_t xen_wdt_write(struct file *file, const char __user *data,