From: dlezcano Date: Mon, 5 Jan 2009 18:36:23 +0000 (+0000) Subject: Add freezer compatibility for older interface X-Git-Tag: lxc_0_5_2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84701151f068a27414b20425d13c081c336d577a;p=thirdparty%2Flxc.git Add freezer compatibility for older interface From: Daniel Lezcano Different interface exists for the freezer, "RUNNING" or "THAWED" should be written to the freezer file, so in case "THAWED", we fall back to "RUNNING". That allows to support older freezer kernel interface for 2.6.27. Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/freezer.c b/src/lxc/freezer.c index 9c774cc23..538943b7a 100644 --- a/src/lxc/freezer.c +++ b/src/lxc/freezer.c @@ -36,7 +36,7 @@ static int freeze_unfreeze(const char *name, int freeze) { - char freezer[MAXPATHLEN], *f = freeze?"FROZEN":"THAWED"; + char freezer[MAXPATHLEN], *f; int fd, ret = -1; snprintf(freezer, MAXPATHLEN, @@ -48,7 +48,20 @@ static int freeze_unfreeze(const char *name, int freeze) return -1; } - ret = write(fd, f, strlen(f) + 1) < 0; + if (freeze) { + f = "FROZEN"; + ret = write(fd, f, strlen(f) + 1) < 0; + } else { + f = "THAWED"; + ret = write(fd, f, strlen(f) + 1) < 0; + + /* compatibility code with old freezer interface */ + if (ret) { + f = "RUNNING"; + ret = write(fd, f, strlen(f) + 1) < 0; + } + } + close(fd); if (ret) lxc_log_syserror("failed to write to '%s'", freezer);