public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Xiaole He <hexiaole1994@126.com>
Cc: linux-xfs@vger.kernel.org, sandeen@redhat.com,
	Xiaole He <hexiaole@kylinos.cn>
Subject: Re: [PATCH v2 1/2] xfsdocs: fix inode timestamps lower limit value
Date: Mon, 18 Jul 2022 10:17:25 -0700	[thread overview]
Message-ID: <YtWVpW2EQAMIWnBd@magnolia> (raw)
In-Reply-To: <1658052449-567-1-git-send-email-hexiaole1994@126.com>

On Sun, Jul 17, 2022 at 06:07:28PM +0800, Xiaole He wrote:
> 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>

Looks correct, will commit...
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
> V1 -> V2: Wrap line at 72 column, add Signed-off-by, add one more 
> 'date' command for explanation, remove the question section.
> 
>  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]]
> -- 
> 1.8.3.1
> 

      reply	other threads:[~2022-07-18 17:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-17 10:07 [PATCH v2 1/2] xfsdocs: fix inode timestamps lower limit value Xiaole He
2022-07-18 17:17 ` Darrick J. Wong [this message]

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=YtWVpW2EQAMIWnBd@magnolia \
    --to=djwong@kernel.org \
    --cc=hexiaole1994@126.com \
    --cc=hexiaole@kylinos.cn \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /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