[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-tar] Re: Check nano seconds (nsec) to accurate; extract of sym-lin
From: |
Raphael Bossek |
Subject: |
[Bug-tar] Re: Check nano seconds (nsec) to accurate; extract of sym-links fails |
Date: |
Fri, 21 Jul 2006 12:35:11 +0200 |
Hi tar folks,
I've started a detailed analysis of the problem I complained. (By the way, the
last patch is too radical and does not work/test suite fails too).
Within my environment using UserModeLinux (http://user-mode-linux.sf.net)
restore of nano secondes does not work! lstat() returns always tv_nsec == 0!
I think also the check_time() function need a else- case where the is and
should values are tested more accurate. A warning here would help a lot to
discover the problem I have.
The next patch against 1.15.91 solve the problem with nano seconds and does not
corrupt other things (testsuite fine):
--- tar-1.15.91.orig/src/extract.c
+++ tar-1.15.91/src/extract.c
@@ -918,7 +918,7 @@
for (; ds; ds = ds->next)
if (ds->dev == st1.st_dev
&& ds->ino == st1.st_ino
- && timespec_cmp (ds->mtime, get_stat_mtime (&st1)) == 0)
+ && tar_timespec_cmp (ds->mtime, get_stat_mtime (&st1)) == 0)
{
struct string_list *p = xmalloc (offsetof (struct
string_list, string)
+ strlen (file_name) + 1);
@@ -1254,7 +1254,7 @@
if (lstat (source, &st) == 0
&& st.st_dev == ds->dev
&& st.st_ino == ds->ino
- && timespec_cmp (get_stat_mtime (&st), ds->mtime) == 0)
+ && tar_timespec_cmp (get_stat_mtime (&st), ds->mtime) == 0)
{
/* Unlink the placeholder, then create a hard link if possible,
a symbolic link otherwise. */
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
Any furter comments are welcome because I would like to know how tar will
handle this in future on Linux/i386.
Thanks for your comments,
Raphael Bossek
--
Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
"Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl