X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Fappliance.c;h=906b6a9b556c4ed4775849601f9db45e8f60c8c0;hb=913d5cd3a950a35f19581262250f58a871689d8c;hp=30eb6fd498857621e310e4b7f7e0846339b763a6;hpb=f410d571ccbf54b34937dab2868614d35fe59855;p=libguestfs.git diff --git a/src/appliance.c b/src/appliance.c index 30eb6fd..906b6a9 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,13 +343,19 @@ 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. */ int fd = open (filename, O_RDONLY); if (fd == -1) return 0; +#ifdef HAVE_FUTIMENS (void) futimens (fd, NULL); +#else + (void) futimes (fd, NULL); +#endif struct flock fl; fl.l_type = F_RDLCK; fl.l_whence = SEEK_SET;