From: Jan Hudec <bulb@ucw.cz>
To: "Kenneth M. Howlett" <av556@detroit.freenet.org>
Cc: linux-kernel@vger.kernel.org, mnalis-umsdos@voyager.hr,
chaffee@cs.berkeley.edu, bsg@uniyar.ac.ru
Subject: Re: PROBLEM: dos filesystem timestamps and daylight savings time
Date: Wed, 30 Oct 2002 09:23:45 +0100 [thread overview]
Message-ID: <20021030082345.GB13337@vagabond> (raw)
In-Reply-To: <200210300108.UAA17536@detroit.freenet.org>
On Tue, Oct 29, 2002 at 08:08:20PM -0500, Kenneth M. Howlett wrote:
> A few days ago, daylight savings time ended, and now
> ls --full-time says the timestamps of all the files on
> my dos partition have increased by one hour.
>
> For example, ls --full-time says the timestamp of command.com is:
> last week: Tue Apr 07 06:00:00 1992
> this week: Tue Apr 07 07:00:00 1992
>
> I think the timestamps of a dos filesystem are stored in local
> time. So the dos filesystem driver needs to convert the local
> time to unix standard time, and then ls converts back to local
> time, and displays the timestamp in local time.
>
> I think that the problem is that the dos filesystem driver's
> local time to unix standard time algorithm is compensating for
> whether or not daylight savings time is in effect NOW. It should
> be compensating for whether or not daylight savings time was in
> effect at the time of the timestamp.
>
> The time conversion algorithm is function date_dos2unix in file
> /usr/src/linux-2.4.19/fs/fat/misc.c. Is there a way to use
> tz_minuteswest from the the time of the timestamp instead of the
> current tz_minuteswest?
>
> Or before returning the number of seconds, function date_dos2unix
> could determine if daylight savings time is in effect now, and if
> daylight savings time was in effect at the time of the timestamp.
> These determinations could return 0 or 1. Then subtract the two
> determinations, which will give us -1, 0, or 1. Multiply by 3600
> and add to the number of seconds.
>
> Function fat_date_unix2dos in file
> /usr/src/linux-2.4.19/fs/fat/misc.c should have a similar fix.
>
> ls appears to convert unix standard time to local time correctly,
> adjusting for whether or not daylight savings time was in effect
> at the time being converted. Maybe we should look at the source
> for ls, to see how ls converts time.
Yes. But it needs the /usr/share/zoneinfo/`cat /etc/timezone` file for this.
That file contains a record of when daylight saving time was in effect
for that country. It's handling is in standart C library. But kernel
does not use C library and does not load files. Thus it does not know,
weather DST was in effect at some time...
-------------------------------------------------------------------------------
Jan 'Bulb' Hudec <bulb@ucw.cz>
next prev parent reply other threads:[~2002-10-30 8:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-30 1:08 PROBLEM: dos filesystem timestamps and daylight savings time Kenneth M. Howlett
2002-10-30 8:23 ` Jan Hudec [this message]
2002-10-30 16:34 ` Chris Wedgwood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20021030082345.GB13337@vagabond \
--to=bulb@ucw.cz \
--cc=av556@detroit.freenet.org \
--cc=bsg@uniyar.ac.ru \
--cc=chaffee@cs.berkeley.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=mnalis-umsdos@voyager.hr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox