- patch_realtime(directory, de->d_name, &st, &realtime);
+ if (journal_file_empty(dirfd(d), p)) {
+ /* Always vacuum empty non-online files. */
+
+ uint64_t size = 512UL * (uint64_t) st.st_blocks;
+
+ if (unlinkat(dirfd(d), p, 0) >= 0) {
+ log_info("Deleted empty journal %s/%s (%"PRIu64" bytes).",
+ directory, p, size);
+ freed += size;
+ } else if (errno != ENOENT)
+ log_warning("Failed to delete %s/%s: %m", directory, p);
+
+ free(p);
+
+ continue;
+ }
+
+ patch_realtime(directory, p, &st, &realtime);