diff options
| author | Xiaole He <hexiaole1994@126.com> | 2022-07-18 10:13:37 -0700 |
|---|---|---|
| committer | Darrick J. Wong <djwong@kernel.org> | 2022-07-18 10:33:13 -0700 |
| commit | 32259aaddabfb6296494f564e75cad8f4845b8aa (patch) | |
| tree | e41c5ee5e634e8468dc608e4539d471c3f1abf5c /design/XFS_Filesystem_Structure | |
| parent | f1de07284aba6ddb2b4165576298a4db0cd45f4c (diff) | |
| download | xfs-documentation-32259aaddabfb6296494f564e75cad8f4845b8aa.tar.gz | |
xfsdocs: fix inode timestamps lower limit value2022-07-18
In kernel source tree 'fs/xfs/libxfs/xfs_format.h', there defined inode
timestamps as 'xfs_legacy_timestamp' if the 'bigtime' feature disabled,
and also defined the min and max time constants 'XFS_LEGACY_TIME_MIN'
and 'XFS_LEGACY_TIME_MAX' as below:
/* fs/xfs/libxfs/xfs_format.h begin */
struct xfs_legacy_timestamp {
__be32 t_sec; /* timestamp seconds */
__be32 t_nsec; /* timestamp nanoseconds */
};
#define XFS_LEGACY_TIME_MIN ((int64_t)S32_MIN)
#define XFS_LEGACY_TIME_MAX ((int64_t)S32_MAX)
/* fs/xfs/libxfs/xfs_format.h end */
/* include/linux/limits.h begin */
#define U32_MAX ((u32)~0U)
#define S32_MAX ((s32)(U32_MAX >> 1))
#define S32_MIN ((s32)(-S32_MAX - 1))
/* include/linux/limits.h end */
When the 't_sec' and 't_nsec' are 0, the time value it represents is
1970-01-01 00:00:00 UTC, the 'XFS_LEGACY_TIME_MIN', that is -(2^31),
represents the min second offset relative to the
1970-01-01 00:00:00 UTC, it can be converted to human-friendly time
value by 'date' command:
/* command begin */
[root@~]# date --utc -d '@0' +'%Y-%m-%d %H:%M:%S'
1970-01-01 00:00:00
[root@~]# date --utc -d "@`echo '-(2^31)'|bc`" +'%Y-%m-%d %H:%M:%S'
1901-12-13 20:45:52
[root@~]#
/* command end */
That is, the min time value is 1901-12-13 20:45:52 UTC, but the
'design/XFS_Filesystem_Structure/timestamps.asciidoc' write the min
time value as 'The smalle st date this format can represent is
20:45:52 UTC on December 31st', there should be a typo, and this patch
correct 2 places of wrong min time value, from '31st' to '13st'.
Signed-off-by: Xiaole He <hexiaole@kylinos.cn>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'design/XFS_Filesystem_Structure')
| -rw-r--r-- | design/XFS_Filesystem_Structure/timestamps.asciidoc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/design/XFS_Filesystem_Structure/timestamps.asciidoc b/design/XFS_Filesystem_Structure/timestamps.asciidoc index 08baa1e..56d4dc9 100644 --- a/design/XFS_Filesystem_Structure/timestamps.asciidoc +++ b/design/XFS_Filesystem_Structure/timestamps.asciidoc @@ -26,13 +26,13 @@ struct xfs_legacy_timestamp { }; ---- -The smallest date this format can represent is 20:45:52 UTC on December 31st, +The smallest date this format can represent is 20:45:52 UTC on December 13st, 1901, and the largest date supported is 03:14:07 UTC on January 19, 2038. With the introduction of the bigtime feature, the format is changed to interpret the timestamp as a 64-bit count of nanoseconds since the smallest date supported by the old encoding. This means that the smallest date -supported is still 20:45:52 UTC on December 31st, 1901; but now the largest +supported is still 20:45:52 UTC on December 13st, 1901; but now the largest date supported is 20:20:24 UTC on July 2nd, 2486. [[Quota_Timers]] |
