if (!sys_compare_gid (&stat_data, ¤t_stat_info.stat))
report_difference (¤t_stat_info, _("Gid differs"));
- if (stat_data.st_mtime != current_stat_info.stat.st_mtime)
+ if (timespec_cmp (get_stat_mtime (&stat_data), current_stat_info.mtime))
report_difference (¤t_stat_info, _("Mod time differs"));
if (current_header->header.typeflag != GNUTYPE_SPARSE &&
stat_data.st_size != current_stat_info.stat.st_size)
static void
diff_dumpdir (void)
{
- char *dumpdir_buffer = get_directory_contents (current_stat_info.file_name,
- 0);
+ char *dumpdir_buffer;
+ dev_t dev = 0;
+ struct stat stat;
+
+ if (deref_stat (true, current_stat_info.file_name, &stat))
+ {
+ if (errno == ENOENT)
+ stat_warn (current_stat_info.file_name);
+ else
+ stat_error (current_stat_info.file_name);
+ }
+ else
+ dev = stat.st_dev;
+
+ dumpdir_buffer = get_directory_contents (current_stat_info.file_name, dev);
if (multi_volume_option)
{