diff options
author | phk <phk@FreeBSD.org> | 2003-02-03 19:49:35 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-02-03 19:49:35 +0000 |
commit | 3692879cc82e12c56c011d2bf97d1c02bd3d66c5 (patch) | |
tree | 7251be2a86087b08495da120d84f24f25ed673c8 /sys/fs/msdosfs | |
parent | db8a973d3ddfc686520b7766d7464f5140726cd9 (diff) | |
download | FreeBSD-src-3692879cc82e12c56c011d2bf97d1c02bd3d66c5.zip FreeBSD-src-3692879cc82e12c56c011d2bf97d1c02bd3d66c5.tar.gz |
Split the global timezone structure into two integer fields to
prevent the compiler from optimizing assignments into byte-copy
operations which might make access to the individual fields non-atomic.
Use the individual fields throughout, and don't bother locking them with
Giant: it is no longer needed.
Inspired by: tjr
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_conv.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/msdosfs/msdosfs_conv.c b/sys/fs/msdosfs/msdosfs_conv.c index 7b3591e..d135bfa 100644 --- a/sys/fs/msdosfs/msdosfs_conv.c +++ b/sys/fs/msdosfs/msdosfs_conv.c @@ -112,7 +112,7 @@ unix2dostime(tsp, ddp, dtp, dhp) * If the time from the last conversion is the same as now, then * skip the computations and use the saved result. */ - t = tsp->tv_sec - (tz.tz_minuteswest * 60) + t = tsp->tv_sec - (tz_minuteswest * 60) - (wall_cmos_clock ? adjkerntz : 0); /* - daylight savings time correction */ t &= ~1; @@ -224,7 +224,7 @@ dos2unixtime(dd, dt, dh, tsp) days += ((dd & DD_DAY_MASK) >> DD_DAY_SHIFT) - 1; lastseconds = (days * 24 * 60 * 60) + SECONDSTO1980; } - tsp->tv_sec = seconds + lastseconds + (tz.tz_minuteswest * 60) + tsp->tv_sec = seconds + lastseconds + (tz_minuteswest * 60) + adjkerntz; /* + daylight savings time correction */ tsp->tv_nsec = (dh % 100) * 10000000; |