aboutsummaryrefslogtreecommitdiffstats
path: root/design/XFS_Filesystem_Structure
diff options
context:
space:
mode:
authorXiaole He <hexiaole1994@126.com>2022-07-18 10:13:37 -0700
committerDarrick J. Wong <djwong@kernel.org>2022-07-18 10:33:13 -0700
commit32259aaddabfb6296494f564e75cad8f4845b8aa (patch)
treee41c5ee5e634e8468dc608e4539d471c3f1abf5c /design/XFS_Filesystem_Structure
parentf1de07284aba6ddb2b4165576298a4db0cd45f4c (diff)
downloadxfs-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.asciidoc4
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]]