/* Delay (number of records written) between adding entry to the
list and its actual removal. */
-size_t deferred_unlink_delay = 0;
+static size_t deferred_unlink_delay = 0;
static struct deferred_unlink *
dunlink_alloc (void)
{
if (p->is_dir)
{
- if (rmdir (p->file_name) != 0)
+ if (unlinkat (chdir_fd, p->file_name, AT_REMOVEDIR) != 0)
{
switch (errno)
{
}
else
{
- if (unlink (p->file_name) != 0 && errno != ENOENT)
+ if (unlinkat (chdir_fd, p->file_name, 0) != 0 && errno != ENOENT)
unlink_error (p->file_name);
}
dunlink_reclaim (p);
}
void
-finish_deferred_unlinks ()
+finish_deferred_unlinks (void)
{
flush_deferred_unlinks (true);
while (dunlink_avail)