From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Deepa Dinamani <deepa.kernel@gmail.com>
Cc: tytso@mit.edu, arnd@arndb.de, y2038@lists.linaro.org,
linux-kernel@vger.kernel.org, adilger.kernel@dilger.ca,
viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org,
linux-ext4@vger.kernel.org
Subject: Re: [PATCH v4 1/5] vfs: Add file timestamp range support
Date: Fri, 24 Feb 2017 19:10:25 -0800 [thread overview]
Message-ID: <20170225031025.GA5269@birch.djwong.org> (raw)
In-Reply-To: <1487986863-6005-2-git-send-email-deepa.kernel@gmail.com>
On Fri, Feb 24, 2017 at 05:40:59PM -0800, Deepa Dinamani wrote:
> Add fields to the superblock to track the min and max
> timestamps supported by filesystems.
>
> Initially, when a superblock is allocated, initialize
> it to the max and min values the fields can hold.
> Individual filesystems override these to match their
> actual limits.
>
> Pseudo filesystems are assumed to always support the
> min and max allowable values for the fields.
>
> Note that the time ranges are saved in type time64_t
> rather than time_t.
> This is required because if we save ranges in time_t
> then we would not be able to save timestamp ranges
> for files that support timestamps beyond y2038.
>
> Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
> ---
> fs/super.c | 2 ++
> include/linux/fs.h | 3 +++
> include/linux/time64.h | 2 ++
> 3 files changed, 7 insertions(+)
>
> diff --git a/fs/super.c b/fs/super.c
> index b8b6a08..f9c2241 100644
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -247,6 +247,8 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
> s->s_maxbytes = MAX_NON_LFS;
> s->s_op = &default_op;
> s->s_time_gran = 1000000000;
> + s->s_time_min = TIME64_MIN;
> + s->s_time_max = TIME64_MAX;
Just out of curiosity, does this enable 64-bit timestamps for everything
by default? I see that ext4 later sets its own values in fill_super;
what about things like XFS that really only have 32-bit seconds fields?
--D
> s->cleancache_poolid = CLEANCACHE_NO_POOL;
>
> s->s_shrink.seeks = DEFAULT_SEEKS;
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index de8ed0b..ef55dfb 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -1337,6 +1337,9 @@ struct super_block {
> /* Granularity of c/m/atime in ns.
> Cannot be worse than a second */
> u32 s_time_gran;
> + /* Time limits for c/m/atime in seconds. */
> + time64_t s_time_min;
> + time64_t s_time_max;
>
> /*
> * The next field is for VFS *only*. No filesystems have any business
> diff --git a/include/linux/time64.h b/include/linux/time64.h
> index 980c71b..25433b18 100644
> --- a/include/linux/time64.h
> +++ b/include/linux/time64.h
> @@ -38,6 +38,8 @@ struct itimerspec64 {
>
> /* Located here for timespec[64]_valid_strict */
> #define TIME64_MAX ((s64)~((u64)1 << 63))
> +#define TIME64_MIN (-TIME64_MAX - 1)
> +
> #define KTIME_MAX ((s64)~((u64)1 << 63))
> #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
>
> --
> 2.7.4
>
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038
next prev parent reply other threads:[~2017-02-25 3:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-25 1:40 [PATCH v4 0/5] vfs: Add timestamp range check support Deepa Dinamani
2017-02-25 1:40 ` [PATCH v4 1/5] vfs: Add file timestamp range support Deepa Dinamani
2017-02-25 3:10 ` Darrick J. Wong [this message]
2017-02-25 18:56 ` Deepa Dinamani
2017-02-25 1:41 ` [PATCH v4 2/5] vfs: Add checks for filesystem timestamp limits Deepa Dinamani
2017-02-25 1:41 ` [PATCH v4 3/5] ext4: Initialize timestamps limits Deepa Dinamani
2017-02-25 1:41 ` [PATCH v4 4/5] vfs: Add timestamp_truncate() api Deepa Dinamani
2017-02-25 1:41 ` [PATCH v4 5/5] utimes: Clamp the timestamps before update Deepa Dinamani
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=20170225031025.GA5269@birch.djwong.org \
--to=darrick.wong@oracle.com \
--cc=adilger.kernel@dilger.ca \
--cc=arnd@arndb.de \
--cc=deepa.kernel@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
--cc=y2038@lists.linaro.org \
/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