linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Deepa Dinamani <deepa.kernel@gmail.com>
To: viro@zeniv.linux.org.uk, linux-kernel@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, arnd@arndb.de
Subject: [PATCH v8 01/20] vfs: Add file timestamp range support
Date: Sun, 18 Aug 2019 09:57:58 -0700	[thread overview]
Message-ID: <20190818165817.32634-2-deepa.kernel@gmail.com> (raw)
In-Reply-To: <20190818165817.32634-1-deepa.kernel@gmail.com>

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.

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 36cb5aaf6f08..620c1911bb36 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -258,6 +258,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;
 	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 d97d74f35eb3..93c440d22547 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1463,6 +1463,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;
 #ifdef CONFIG_FSNOTIFY
 	__u32			s_fsnotify_mask;
 	struct fsnotify_mark_connector __rcu	*s_fsnotify_marks;
diff --git a/include/linux/time64.h b/include/linux/time64.h
index a620ee610b9f..19125489ae94 100644
--- a/include/linux/time64.h
+++ b/include/linux/time64.h
@@ -30,6 +30,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.17.1


  reply	other threads:[~2019-08-18 16:59 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-18 16:57 [PATCH v8 00/20] vfs: Add support for timestamp limits Deepa Dinamani
2019-08-18 16:57 ` Deepa Dinamani [this message]
2019-08-18 16:57 ` [PATCH v8 02/20] vfs: Add timestamp_truncate() api Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 03/20] timestamp_truncate: Replace users of timespec64_trunc Deepa Dinamani
2019-08-18 18:34   ` Greg KH
2019-08-18 16:58 ` [PATCH v8 04/20] mount: Add mount warning for impending timestamp expiry Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 05/20] utimes: Clamp the timestamps before update Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 06/20] fs: Fill in max and min timestamps in superblock Deepa Dinamani
2019-08-20 11:28   ` Anders Larsen
     [not found]   ` <CAK+_RLmK0Vy79giAZnUCmmivvRT+GLZXyiMqBoFB0_Ed1W8BkA@mail.gmail.com>
2019-08-20 12:28     ` Tigran Aivazian
2019-08-18 16:58 ` [PATCH v8 07/20] 9p: Fill min and max timestamps in sb Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 08/20] adfs: Fill in max and min " Deepa Dinamani
2019-08-20 16:28   ` Matthew Wilcox
2019-08-20 23:55     ` Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 09/20] ext4: Initialize timestamps limits Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 10/20] fs: nfs: Initialize filesystem timestamp ranges Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 11/20] fs: cifs: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 12/20] fs: fat: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 13/20] fs: affs: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 14/20] fs: sysv: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 15/20] fs: ceph: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 16/20] fs: orangefs: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 17/20] fs: hpfs: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 18/20] fs: omfs: " Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 19/20] pstore: fs superblock limits Deepa Dinamani
2019-08-20  7:20   ` Kees Cook
2019-08-21  0:03     ` Deepa Dinamani
2019-08-18 16:58 ` [PATCH v8 20/20] isofs: Initialize filesystem timestamp ranges Deepa Dinamani
2019-08-20 11:05 ` [PATCH v8 00/20] vfs: Add support for timestamp limits Jeff Layton

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=20190818165817.32634-2-deepa.kernel@gmail.com \
    --to=deepa.kernel@gmail.com \
    --cc=arnd@arndb.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).