X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Fappliance.c;h=1b6b505e776bc6bf2596529610ee28be20bfab52;hb=refs%2Ftags%2F1.7.24;hp=6d560ec438aa2e0d74685f597bd882e68dac250a;hpb=3d114fcf84372c52ea769c4bb8efa572936f1f5a;p=libguestfs.git diff --git a/src/appliance.c b/src/appliance.c index 6d560ec..1b6b505 100644 --- a/src/appliance.c +++ b/src/appliance.c @@ -320,7 +320,6 @@ check_for_cached_appliance (guestfs_h *g, snprintf (filename, len, "%s/checksum", cachedir); (void) mkdir (cachedir, 0755); - (void) utime (cachedir, NULL); /* See if the cache directory exists and passes some simple checks * to make sure it has not been tampered with. @@ -344,6 +343,8 @@ check_for_cached_appliance (guestfs_h *g, return -1; } + (void) utime (cachedir, NULL); + garbage_collect_appliances (cachedir); /* Try to open and acquire a lock on the checksum file. */ @@ -563,18 +564,23 @@ hard_link_to_cached_appliance (guestfs_h *g, perrorf (g, "link: %s %s", filename, *kernel); goto error; } + (void) lutimes (filename, NULL); /* lutimes because it's a symlink */ + snprintf (filename, len, "%s/initrd", cachedir); (void) unlink (*initrd); if (link (filename, *initrd) == -1) { perrorf (g, "link: %s %s", filename, *initrd); goto error; } + (void) utime (filename, NULL); + snprintf (filename, len, "%s/root", cachedir); (void) unlink (*appliance); if (link (filename, *appliance) == -1) { perrorf (g, "link: %s %s", filename, *appliance); goto error; } + (void) utime (filename, NULL); return 0;