]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
handle unlink races better
authorAndrew Tridgell <tridge@samba.org>
Thu, 28 Mar 2002 05:49:31 +0000 (06:49 +0100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 28 Mar 2002 05:49:31 +0000 (06:49 +0100)
ccache_clean.c
util.c

index 9ed3aed3830dca6e43fa7b6e468d72f6f10044e2..ccdac18f38d77a93648c2e0711b3ff43726e6fac 100644 (file)
@@ -71,7 +71,7 @@ static void sort_and_clean(void)
 
        /* delete enough files to bring us below the threshold */
        for (i=0;i<num_files && total_size >= size_threshold;i++) {
-               if (unlink(files[i]->fname) != 0) {
+               if (unlink(files[i]->fname) != 0 && errno != ENOENT) {
                        fprintf(stderr, "unlink %s - %s\n", 
                                files[i]->fname, strerror(errno));
                        continue;
diff --git a/util.c b/util.c
index 1d5d35de63642cf741cc51f54985a220dc3a18fe..d755de45019cb664abb513959ff732dbb47d4e00 100644 (file)
--- a/util.c
+++ b/util.c
@@ -190,7 +190,9 @@ void traverse(const char *dir, void (*fn)(const char *, struct stat *))
 
                x_asprintf(&fname, "%s/%s", dir, de->d_name);
                if (lstat(fname, &st)) {
-                       perror(fname);
+                       if (errno != ENOENT) {
+                               perror(fname);
+                       }
                        free(fname);
                        continue;
                }