Hi all, This series performs some refactoring of our timestamp and inode encoding functions, then retrofits the timestamp union to handle timestamps as a 64-bit nanosecond counter. Next, it adds bit shifting to the non-root dquot timer fields to boost their effective size to 34 bits. These two changes enable correct time handling on XFS through the year 2486. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=bigtime xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=bigtime fstests git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=bigtime --- db/Makefile | 2 - db/command.c | 1 db/command.h | 1 db/dquot.c | 31 ++++++++- db/field.c | 8 ++ db/field.h | 3 + db/fprint.c | 120 +++++++++++++++++++++++++++++++++++ db/fprint.h | 6 ++ db/inode.c | 30 ++++++++- db/sb.c | 15 ++++ db/timelimit.c | 152 ++++++++++++++++++++++++++++++++++++++++++++ include/libxfs.h | 1 include/platform_defs.h.in | 3 + include/xfs_inode.h | 22 +++--- include/xfs_mount.h | 5 + libfrog/fsgeom.c | 6 +- libxfs/libxfs_api_defs.h | 14 ++++ libxfs/libxfs_priv.h | 2 - libxfs/util.c | 10 ++- libxfs/xfs_dquot_buf.c | 60 +++++++++++++++++ libxfs/xfs_format.h | 139 +++++++++++++++++++++++++++++++++++++--- libxfs/xfs_fs.h | 1 libxfs/xfs_inode_buf.c | 132 +++++++++++++++++++------------------- libxfs/xfs_inode_buf.h | 7 +- libxfs/xfs_log_format.h | 21 ++++-- libxfs/xfs_quota_defs.h | 9 ++- libxfs/xfs_sb.c | 2 + man/man8/mkfs.xfs.8 | 16 +++++ man/man8/xfs_admin.8 | 5 + man/man8/xfs_db.8 | 23 +++++++ mkfs/xfs_mkfs.c | 24 +++++++ repair/dinode.c | 25 ++++++- scrub/common.c | 2 - scrub/progress.c | 1 34 files changed, 772 insertions(+), 127 deletions(-) create mode 100644 db/timelimit.c