From: Zbigniew Jędrzejewski-Szmek Date: Mon, 24 Jun 2013 11:59:41 +0000 (-0400) Subject: journal/vacuum: cleanup X-Git-Tag: v205~80 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=30cb029b8bf6578ed1595d87abdedc6923fd4608;hp=9c3fd04e7d8c469d8902b43607de5134d9528618 journal/vacuum: cleanup --- diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 4a3a5a9e6..1ddb043e2 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -135,10 +135,11 @@ int journal_directory_vacuum( usec_t max_retention_usec, usec_t *oldest_usec) { - DIR *d; + _cleanup_closedir_ DIR *d = NULL; int r = 0; struct vacuum_info *list = NULL; - unsigned n_list = 0, n_allocated = 0, i; + unsigned n_list = 0, i; + size_t n_allocated = 0; uint64_t sum = 0; usec_t retention_limit = 0; @@ -248,19 +249,7 @@ int journal_directory_vacuum( patch_realtime(directory, de->d_name, &st, &realtime); - if (n_list >= n_allocated) { - struct vacuum_info *j; - - n_allocated = MAX(n_allocated * 2U, 8U); - j = realloc(list, n_allocated * sizeof(struct vacuum_info)); - if (!j) { - free(p); - r = -ENOMEM; - goto finish; - } - - list = j; - } + GREEDY_REALLOC(list, n_allocated, n_list + 1); list[n_list].filename = p; list[n_list].usage = 512UL * (uint64_t) st.st_blocks; @@ -308,11 +297,7 @@ int journal_directory_vacuum( finish: for (i = 0; i < n_list; i++) free(list[i].filename); - free(list); - if (d) - closedir(d); - return r; }