[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1487986863-6005-4-git-send-email-deepa.kernel@gmail.com>
Date: Fri, 24 Feb 2017 17:41:01 -0800
From: Deepa Dinamani <deepa.kernel@...il.com>
To: viro@...iv.linux.org.uk, tytso@....edu, adilger.kernel@...ger.ca,
linux-ext4@...r.kernel.org
Cc: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
arnd@...db.de, y2038@...ts.linaro.org
Subject: [PATCH v4 3/5] ext4: Initialize timestamps limits
ext4 has different overflow limits for max filesystem
timestamps based on the extra bytes available.
Signed-off-by: Deepa Dinamani <deepa.kernel@...il.com>
Cc: "Theodore Ts'o" <tytso@....edu>
Cc: Andreas Dilger <adilger.kernel@...ger.ca>
Cc: linux-ext4@...r.kernel.org
---
fs/ext4/ext4.h | 4 ++++
fs/ext4/super.c | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 2bef0bd..7bac2cd 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1639,6 +1639,10 @@ static inline void ext4_clear_state_flags(struct ext4_inode_info *ei)
#define EXT4_GOOD_OLD_INODE_SIZE 128
+#define EXT4_EXTRA_TIMESTAMP_MAX (((s64)1 << 34) - 1 + S32_MIN)
+#define EXT4_NON_EXTRA_TIMESTAMP_MAX Y2038_EXPIRY_TIMESTAMP
+#define EXT4_TIMESTAMP_MIN S32_MIN
+
/*
* Feature set definitions
*/
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index a673558..a77e11c 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3689,8 +3689,13 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
sbi->s_inode_size);
goto failed_mount;
}
- if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE)
+ if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE) {
sb->s_time_gran = 1 << (EXT4_EPOCH_BITS - 2);
+ sb->s_time_max = EXT4_EXTRA_TIMESTAMP_MAX;
+ } else
+ sb->s_time_max = EXT4_NON_EXTRA_TIMESTAMP_MAX;
+
+ sb->s_time_min = EXT4_TIMESTAMP_MIN;
}
sbi->s_desc_size = le16_to_cpu(es->s_desc_size);
--
2.7.4
Powered by blists - more mailing lists