--- glibc-20070515T2025/elf/cache.c.bak 2006-11-10 22:15:53.000000000 +0200 +++ glibc-20070515T2025/elf/cache.c 2007-08-19 18:50:09.778381597 +0300 @@ -441,7 +441,11 @@ save_cache (const char *cache_name) if (write (fd, strings, total_strlen) != (ssize_t) total_strlen) error (EXIT_FAILURE, errno, _("Writing of cache data failed")); - close (fd); + if (fsync (fd) == -1) + error (EXIT_FAILURE, errno, _("Fsyncing of cache data failed")); + + if (close (fd) == -1) + error (EXIT_FAILURE, errno, _("Closing of cache data file failed")); /* Make sure user can always read cache file */ if (chmod (temp_name, S_IROTH|S_IRGRP|S_IRUSR|S_IWUSR))