Re: [PATCH v1 1/2] xfsdocs: fix inode timestamps lower limit value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/15/22 5:53 AM, hexiaole wrote:
> From: hexiaole <hexiaole@xxxxxxxxxx>

Again, when you send patches, please include your Signed-off-by: line.

(with your legal name rather than a nick/handle)

While this is not the kernel itself, we do follow the same requirements as in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst

specifically the part under "Developer's Certificate of Origin 1.1"

This translation may also be helpful:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/translations/zh_CN/process/submitting-patches.rst

Thanks,
-Eric

> 1. Fix description
> 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':
> 
> /* fs/xfs/libxfs/xfs_format.h begin */
> struct xfs_legacy_timestamp {
>         __be32          t_sec;          /* timestamp seconds */
>         __be32          t_nsec;         /* timestamp nanoseconds */
> };
> /* fs/xfs/libxfs/xfs_format.h end */
> /* include/linux/limits.h begin */
> /* 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@DESKTOP-G0RBR07 sources]# date --utc -d "@`echo '-(2^31)'|bc`" +'%Y-%m-%d %H:%M:%S'
> 1901-12-13 20:45:52
> [root@DESKTOP-G0RBR07 sources]#
> /* 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 '3
> 1st' to '13st'.
> 
> 2. Question
> In the section 'Quota Timers' of 'design/XFS_Filesystem_Structure/timestamps.asciidoc':
> 
> /* timestamps.asciidoc begin */
> With the introduction of the bigtime feature, the ondisk field now encodes the upper 32 bits of an unsigned 34-bit seconds counter.
> ...
> The smallest quota expiration date is now 00:00:04 UTC on January 1st, 1970;
> and the largest is 20:20:24 UTC on July 2nd, 2486.
> /* timestamps.asciidoc end */
> 
> It seems hard to understand the the relationship among the '32 bits of an unsigned 34-bit seconds counter', '00:00:04 UTC on January 1st, 1970', and 00:00:04 UTC on January 1st, 1970', is it there a typo for '34-bit' and the expected one is '64-bit'?
> ---
>  design/XFS_Filesystem_Structure/timestamps.asciidoc | 4 ++--
>  1 file 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]]




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux