This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Bug-tar] Re: tar --atime-preserve with an empty file triggers a warning


Thanks for reporting that.  I installed the following
patch into GNU tar:

From 24980ce3c6e01ce43cdccd5d1f693c9838e447ed Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 7 Mar 2011 15:40:32 -0800
Subject: [PATCH] --atime-preserve=replace: fix correctness and performance bugs

reported by Eric Blake in
<http://lists.gnu.org/archive/html/bug-tar/2011-03/msg00000.html>.
* src/compare.c (diff_file): Do not restore atime of size-zero files.
* src/create.c (dump_file0): Likewise.  Also, do not restore atime
when fd is zero, because that indicates a file we haven't opened.
---
 src/compare.c |    5 +++--
 src/create.c  |    1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compare.c b/src/compare.c
index 91ced57..273269a 100644
--- a/src/compare.c
+++ b/src/compare.c
@@ -234,7 +234,8 @@ diff_file (void)
else
read_and_process (&current_stat_info, process_rawdata);
- if (atime_preserve_option == replace_atime_preserve)
+ if (atime_preserve_option == replace_atime_preserve
+ && stat_data.st_size != 0)
{
struct timespec atime = get_stat_atime (&stat_data);
if (set_file_atime (diff_handle, chdir_fd, file_name, atime)
@@ -528,7 +529,7 @@ verify_volume (void)
if (may_fail)
WARN((0, 0,
_("Verification may fail to locate original files.")));
-
+
if (!diff_buffer)
diff_init ();
diff --git a/src/create.c b/src/create.c
index e8de6b9..43b5a4c 100644
--- a/src/create.c
+++ b/src/create.c
@@ -1797,6 +1797,7 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p)
set_exit_status (TAREXIT_DIFFERS);
}
else if (atime_preserve_option == replace_atime_preserve
+ && fd && (is_dir || original_size != 0)
&& set_file_atime (fd, parentfd, name, st->atime) != 0)
utime_error (p);
}
--
1.7.4



-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]