All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-29  4:11 Deepa Dinamani
  2019-08-29  4:38   ` [f2fs-dev] " Deepa Dinamani
  2019-08-30 12:56 ` Arnd Bergmann
  0 siblings, 2 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-29  4:11 UTC (permalink / raw)
  To: viro, arnd
  Cc: adilger, aivazian.tigran, darrick.wong, dsterba, gregkh, jlayton,
	keescook, me, linux, linux-kernel, linux-fsdevel, y2038

Hi Al, Arnd,

This is a pull request for filling in min and max timestamps for filesystems.
I've added all the acks, and dropped the adfs patch. That will be merged through
Russell's tree.

Thanks,
Deepa

The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:

  Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)

are available in the Git repository at:

  https://github.com/deepa-hub/vfs limits

for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:

  isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)

----------------------------------------------------------------
Deepa Dinamani (19):
      vfs: Add file timestamp range support
      vfs: Add timestamp_truncate() api
      timestamp_truncate: Replace users of timespec64_trunc
      mount: Add mount warning for impending timestamp expiry
      utimes: Clamp the timestamps before update
      fs: Fill in max and min timestamps in superblock
      9p: Fill min and max timestamps in sb
      ext4: Initialize timestamps limits
      fs: nfs: Initialize filesystem timestamp ranges
      fs: cifs: Initialize filesystem timestamp ranges
      fs: fat: Initialize filesystem timestamp ranges
      fs: affs: Initialize filesystem timestamp ranges
      fs: sysv: Initialize filesystem timestamp ranges
      fs: ceph: Initialize filesystem timestamp ranges
      fs: orangefs: Initialize filesystem timestamp ranges
      fs: hpfs: Initialize filesystem timestamp ranges
      fs: omfs: Initialize filesystem timestamp ranges
      pstore: fs superblock limits
      isofs: Initialize filesystem timestamp ranges

 fs/9p/vfs_super.c        |  6 +++++-
 fs/affs/amigaffs.c       |  2 +-
 fs/affs/amigaffs.h       |  3 +++
 fs/affs/inode.c          |  4 ++--
 fs/affs/super.c          |  4 ++++
 fs/attr.c                | 21 ++++++++++++---------
 fs/befs/linuxvfs.c       |  2 ++
 fs/bfs/inode.c           |  2 ++
 fs/ceph/super.c          |  2 ++
 fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
 fs/cifs/netmisc.c        | 14 +++++++-------
 fs/coda/inode.c          |  3 +++
 fs/configfs/inode.c      | 12 ++++++------
 fs/cramfs/inode.c        |  2 ++
 fs/efs/super.c           |  2 ++
 fs/ext2/super.c          |  2 ++
 fs/ext4/ext4.h           | 10 +++++++++-
 fs/ext4/super.c          | 17 +++++++++++++++--
 fs/f2fs/file.c           | 21 ++++++++++++---------
 fs/fat/inode.c           | 12 ++++++++++++
 fs/freevxfs/vxfs_super.c |  2 ++
 fs/hpfs/hpfs_fn.h        |  6 ++----
 fs/hpfs/super.c          |  2 ++
 fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
 fs/isofs/inode.c         |  7 +++++++
 fs/jffs2/fs.c            |  3 +++
 fs/jfs/super.c           |  2 ++
 fs/kernfs/inode.c        |  7 +++----
 fs/minix/inode.c         |  2 ++
 fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
 fs/nfs/super.c           | 20 +++++++++++++++++++-
 fs/ntfs/inode.c          | 21 ++++++++++++---------
 fs/omfs/inode.c          |  4 ++++
 fs/orangefs/super.c      |  2 ++
 fs/pstore/ram.c          |  2 ++
 fs/qnx4/inode.c          |  2 ++
 fs/qnx6/inode.c          |  2 ++
 fs/reiserfs/super.c      |  3 +++
 fs/romfs/super.c         |  2 ++
 fs/squashfs/super.c      |  2 ++
 fs/super.c               |  2 ++
 fs/sysv/super.c          |  5 ++++-
 fs/ubifs/file.c          | 21 ++++++++++++---------
 fs/ufs/super.c           |  7 +++++++
 fs/utimes.c              |  6 ++----
 fs/xfs/xfs_super.c       |  2 ++
 include/linux/fs.h       |  5 +++++
 include/linux/time64.h   |  2 ++
 48 files changed, 298 insertions(+), 72 deletions(-)

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-29  4:11 [GIT PULL] vfs: Add support for timestamp limits Deepa Dinamani
  2019-08-29  4:38   ` [f2fs-dev] " Deepa Dinamani
@ 2019-08-29  4:38   ` Deepa Dinamani
  1 sibling, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-29  4:38 UTC (permalink / raw)
  To: Alexander Viro, Arnd Bergmann
  Cc: Latchesar Ionkov, martin, jfs-discussion, Dave Kleikamp, al,
	yuchao0, Bob Copeland, Adrian Hunter, Andreas Dilger, mikulas,
	stoph Hellwig, nico, Mike Marshall, linux-cifs, Yan, Zheng,
	Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov

Adding the others who were on original cc, just in case.
- Deepa

On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Thanks,
> Deepa
>
> The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
>
>   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
>
> are available in the Git repository at:
>
>   https://github.com/deepa-hub/vfs limits
>
> for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
>
>   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
>
> ----------------------------------------------------------------
> Deepa Dinamani (19):
>       vfs: Add file timestamp range support
>       vfs: Add timestamp_truncate() api
>       timestamp_truncate: Replace users of timespec64_trunc
>       mount: Add mount warning for impending timestamp expiry
>       utimes: Clamp the timestamps before update
>       fs: Fill in max and min timestamps in superblock
>       9p: Fill min and max timestamps in sb
>       ext4: Initialize timestamps limits
>       fs: nfs: Initialize filesystem timestamp ranges
>       fs: cifs: Initialize filesystem timestamp ranges
>       fs: fat: Initialize filesystem timestamp ranges
>       fs: affs: Initialize filesystem timestamp ranges
>       fs: sysv: Initialize filesystem timestamp ranges
>       fs: ceph: Initialize filesystem timestamp ranges
>       fs: orangefs: Initialize filesystem timestamp ranges
>       fs: hpfs: Initialize filesystem timestamp ranges
>       fs: omfs: Initialize filesystem timestamp ranges
>       pstore: fs superblock limits
>       isofs: Initialize filesystem timestamp ranges
>
>  fs/9p/vfs_super.c        |  6 +++++-
>  fs/affs/amigaffs.c       |  2 +-
>  fs/affs/amigaffs.h       |  3 +++
>  fs/affs/inode.c          |  4 ++--
>  fs/affs/super.c          |  4 ++++
>  fs/attr.c                | 21 ++++++++++++---------
>  fs/befs/linuxvfs.c       |  2 ++
>  fs/bfs/inode.c           |  2 ++
>  fs/ceph/super.c          |  2 ++
>  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
>  fs/cifs/netmisc.c        | 14 +++++++-------
>  fs/coda/inode.c          |  3 +++
>  fs/configfs/inode.c      | 12 ++++++------
>  fs/cramfs/inode.c        |  2 ++
>  fs/efs/super.c           |  2 ++
>  fs/ext2/super.c          |  2 ++
>  fs/ext4/ext4.h           | 10 +++++++++-
>  fs/ext4/super.c          | 17 +++++++++++++++--
>  fs/f2fs/file.c           | 21 ++++++++++++---------
>  fs/fat/inode.c           | 12 ++++++++++++
>  fs/freevxfs/vxfs_super.c |  2 ++
>  fs/hpfs/hpfs_fn.h        |  6 ++----
>  fs/hpfs/super.c          |  2 ++
>  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
>  fs/isofs/inode.c         |  7 +++++++
>  fs/jffs2/fs.c            |  3 +++
>  fs/jfs/super.c           |  2 ++
>  fs/kernfs/inode.c        |  7 +++----
>  fs/minix/inode.c         |  2 ++
>  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
>  fs/nfs/super.c           | 20 +++++++++++++++++++-
>  fs/ntfs/inode.c          | 21 ++++++++++++---------
>  fs/omfs/inode.c          |  4 ++++
>  fs/orangefs/super.c      |  2 ++
>  fs/pstore/ram.c          |  2 ++
>  fs/qnx4/inode.c          |  2 ++
>  fs/qnx6/inode.c          |  2 ++
>  fs/reiserfs/super.c      |  3 +++
>  fs/romfs/super.c         |  2 ++
>  fs/squashfs/super.c      |  2 ++
>  fs/super.c               |  2 ++
>  fs/sysv/super.c          |  5 ++++-
>  fs/ubifs/file.c          | 21 ++++++++++++---------
>  fs/ufs/super.c           |  7 +++++++
>  fs/utimes.c              |  6 ++----
>  fs/xfs/xfs_super.c       |  2 ++
>  include/linux/fs.h       |  5 +++++
>  include/linux/time64.h   |  2 ++
>  48 files changed, 298 insertions(+), 72 deletions(-)

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-29  4:38   ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-29  4:38 UTC (permalink / raw)
  To: Alexander Viro, Arnd Bergmann
  Cc: Latchesar Ionkov, martin, jfs-discussion, Dave Kleikamp, al,
	Bob Copeland, Adrian Hunter, Andreas Dilger, mikulas,
	stoph Hellwig, nico, Mike Marshall, linux-cifs, Yan, Zheng,
	Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Joel Becker, aivazian.tigran, phillip,
	David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o, luisbg,
	Artem Bityutskiy, linux-ntfs-dev, Greg KH, linux-karma-devel,
	jlayton, Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, linux-mtd,
	David Woodhouse, Anna Schumaker

Adding the others who were on original cc, just in case.
- Deepa

On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Thanks,
> Deepa
>
> The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
>
>   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
>
> are available in the Git repository at:
>
>   https://github.com/deepa-hub/vfs limits
>
> for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
>
>   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
>
> ----------------------------------------------------------------
> Deepa Dinamani (19):
>       vfs: Add file timestamp range support
>       vfs: Add timestamp_truncate() api
>       timestamp_truncate: Replace users of timespec64_trunc
>       mount: Add mount warning for impending timestamp expiry
>       utimes: Clamp the timestamps before update
>       fs: Fill in max and min timestamps in superblock
>       9p: Fill min and max timestamps in sb
>       ext4: Initialize timestamps limits
>       fs: nfs: Initialize filesystem timestamp ranges
>       fs: cifs: Initialize filesystem timestamp ranges
>       fs: fat: Initialize filesystem timestamp ranges
>       fs: affs: Initialize filesystem timestamp ranges
>       fs: sysv: Initialize filesystem timestamp ranges
>       fs: ceph: Initialize filesystem timestamp ranges
>       fs: orangefs: Initialize filesystem timestamp ranges
>       fs: hpfs: Initialize filesystem timestamp ranges
>       fs: omfs: Initialize filesystem timestamp ranges
>       pstore: fs superblock limits
>       isofs: Initialize filesystem timestamp ranges
>
>  fs/9p/vfs_super.c        |  6 +++++-
>  fs/affs/amigaffs.c       |  2 +-
>  fs/affs/amigaffs.h       |  3 +++
>  fs/affs/inode.c          |  4 ++--
>  fs/affs/super.c          |  4 ++++
>  fs/attr.c                | 21 ++++++++++++---------
>  fs/befs/linuxvfs.c       |  2 ++
>  fs/bfs/inode.c           |  2 ++
>  fs/ceph/super.c          |  2 ++
>  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
>  fs/cifs/netmisc.c        | 14 +++++++-------
>  fs/coda/inode.c          |  3 +++
>  fs/configfs/inode.c      | 12 ++++++------
>  fs/cramfs/inode.c        |  2 ++
>  fs/efs/super.c           |  2 ++
>  fs/ext2/super.c          |  2 ++
>  fs/ext4/ext4.h           | 10 +++++++++-
>  fs/ext4/super.c          | 17 +++++++++++++++--
>  fs/f2fs/file.c           | 21 ++++++++++++---------
>  fs/fat/inode.c           | 12 ++++++++++++
>  fs/freevxfs/vxfs_super.c |  2 ++
>  fs/hpfs/hpfs_fn.h        |  6 ++----
>  fs/hpfs/super.c          |  2 ++
>  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
>  fs/isofs/inode.c         |  7 +++++++
>  fs/jffs2/fs.c            |  3 +++
>  fs/jfs/super.c           |  2 ++
>  fs/kernfs/inode.c        |  7 +++----
>  fs/minix/inode.c         |  2 ++
>  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
>  fs/nfs/super.c           | 20 +++++++++++++++++++-
>  fs/ntfs/inode.c          | 21 ++++++++++++---------
>  fs/omfs/inode.c          |  4 ++++
>  fs/orangefs/super.c      |  2 ++
>  fs/pstore/ram.c          |  2 ++
>  fs/qnx4/inode.c          |  2 ++
>  fs/qnx6/inode.c          |  2 ++
>  fs/reiserfs/super.c      |  3 +++
>  fs/romfs/super.c         |  2 ++
>  fs/squashfs/super.c      |  2 ++
>  fs/super.c               |  2 ++
>  fs/sysv/super.c          |  5 ++++-
>  fs/ubifs/file.c          | 21 ++++++++++++---------
>  fs/ufs/super.c           |  7 +++++++
>  fs/utimes.c              |  6 ++----
>  fs/xfs/xfs_super.c       |  2 ++
>  include/linux/fs.h       |  5 +++++
>  include/linux/time64.h   |  2 ++
>  48 files changed, 298 insertions(+), 72 deletions(-)


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-29  4:38   ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-29  4:38 UTC (permalink / raw)
  To: Alexander Viro, Arnd Bergmann
  Cc: Latchesar Ionkov, martin, jfs-discussion, Dave Kleikamp, al,
	yuchao0, Bob Copeland, Adrian Hunter, Andreas Dilger, mikulas,
	stoph Hellwig, nico, Mike Marshall, linux-cifs, Yan, Zheng,
	Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Joel Becker, aivazian.tigran, phillip,
	David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o, luisbg,
	Artem Bityutskiy, linux-ntfs-dev, Greg KH, linux-karma-devel,
	jlayton, Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, linux-mtd,
	David Woodhouse, Anna Schumaker

Adding the others who were on original cc, just in case.
- Deepa

On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Thanks,
> Deepa
>
> The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
>
>   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
>
> are available in the Git repository at:
>
>   https://github.com/deepa-hub/vfs limits
>
> for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
>
>   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
>
> ----------------------------------------------------------------
> Deepa Dinamani (19):
>       vfs: Add file timestamp range support
>       vfs: Add timestamp_truncate() api
>       timestamp_truncate: Replace users of timespec64_trunc
>       mount: Add mount warning for impending timestamp expiry
>       utimes: Clamp the timestamps before update
>       fs: Fill in max and min timestamps in superblock
>       9p: Fill min and max timestamps in sb
>       ext4: Initialize timestamps limits
>       fs: nfs: Initialize filesystem timestamp ranges
>       fs: cifs: Initialize filesystem timestamp ranges
>       fs: fat: Initialize filesystem timestamp ranges
>       fs: affs: Initialize filesystem timestamp ranges
>       fs: sysv: Initialize filesystem timestamp ranges
>       fs: ceph: Initialize filesystem timestamp ranges
>       fs: orangefs: Initialize filesystem timestamp ranges
>       fs: hpfs: Initialize filesystem timestamp ranges
>       fs: omfs: Initialize filesystem timestamp ranges
>       pstore: fs superblock limits
>       isofs: Initialize filesystem timestamp ranges
>
>  fs/9p/vfs_super.c        |  6 +++++-
>  fs/affs/amigaffs.c       |  2 +-
>  fs/affs/amigaffs.h       |  3 +++
>  fs/affs/inode.c          |  4 ++--
>  fs/affs/super.c          |  4 ++++
>  fs/attr.c                | 21 ++++++++++++---------
>  fs/befs/linuxvfs.c       |  2 ++
>  fs/bfs/inode.c           |  2 ++
>  fs/ceph/super.c          |  2 ++
>  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
>  fs/cifs/netmisc.c        | 14 +++++++-------
>  fs/coda/inode.c          |  3 +++
>  fs/configfs/inode.c      | 12 ++++++------
>  fs/cramfs/inode.c        |  2 ++
>  fs/efs/super.c           |  2 ++
>  fs/ext2/super.c          |  2 ++
>  fs/ext4/ext4.h           | 10 +++++++++-
>  fs/ext4/super.c          | 17 +++++++++++++++--
>  fs/f2fs/file.c           | 21 ++++++++++++---------
>  fs/fat/inode.c           | 12 ++++++++++++
>  fs/freevxfs/vxfs_super.c |  2 ++
>  fs/hpfs/hpfs_fn.h        |  6 ++----
>  fs/hpfs/super.c          |  2 ++
>  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
>  fs/isofs/inode.c         |  7 +++++++
>  fs/jffs2/fs.c            |  3 +++
>  fs/jfs/super.c           |  2 ++
>  fs/kernfs/inode.c        |  7 +++----
>  fs/minix/inode.c         |  2 ++
>  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
>  fs/nfs/super.c           | 20 +++++++++++++++++++-
>  fs/ntfs/inode.c          | 21 ++++++++++++---------
>  fs/omfs/inode.c          |  4 ++++
>  fs/orangefs/super.c      |  2 ++
>  fs/pstore/ram.c          |  2 ++
>  fs/qnx4/inode.c          |  2 ++
>  fs/qnx6/inode.c          |  2 ++
>  fs/reiserfs/super.c      |  3 +++
>  fs/romfs/super.c         |  2 ++
>  fs/squashfs/super.c      |  2 ++
>  fs/super.c               |  2 ++
>  fs/sysv/super.c          |  5 ++++-
>  fs/ubifs/file.c          | 21 ++++++++++++---------
>  fs/ufs/super.c           |  7 +++++++
>  fs/utimes.c              |  6 ++----
>  fs/xfs/xfs_super.c       |  2 ++
>  include/linux/fs.h       |  5 +++++
>  include/linux/time64.h   |  2 ++
>  48 files changed, 298 insertions(+), 72 deletions(-)

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-29  4:38   ` [f2fs-dev] " Deepa Dinamani
  (?)
@ 2019-08-30  1:20     ` Mike Marshall
  -1 siblings, 0 replies; 27+ messages in thread
From: Mike Marshall @ 2019-08-30  1:20 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, yuchao0, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, nico, linux-cifs,
	Yan, Zheng, Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4

Hi Deepa...

I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
on orangefs and got a regression... generic/258 failed
with: "Timestamp wrapped"...

# cat results/generic/258.out.bad
QA output created by 258
Creating file with timestamp of Jan 1, 1960
Testing for negative seconds since epoch
Timestamp wrapped: 0
Timestamp wrapped
(see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
and 258 passed... then added the patch series back and the failure returned...

Also.... when I was using "git am" to apply the patch series, the ceph patch
failed, so I "git skipped" it...

I obtained the patch series from: https://github.com/deepa-hub/vfs limits
today.

-Mike

On Thu, Aug 29, 2019 at 12:38 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Adding the others who were on original cc, just in case.
> - Deepa
>
> On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> >
> > Hi Al, Arnd,
> >
> > This is a pull request for filling in min and max timestamps for filesystems.
> > I've added all the acks, and dropped the adfs patch. That will be merged through
> > Russell's tree.
> >
> > Thanks,
> > Deepa
> >
> > The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
> >
> >   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
> >
> > are available in the Git repository at:
> >
> >   https://github.com/deepa-hub/vfs limits
> >
> > for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
> >
> >   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
> >
> > ----------------------------------------------------------------
> > Deepa Dinamani (19):
> >       vfs: Add file timestamp range support
> >       vfs: Add timestamp_truncate() api
> >       timestamp_truncate: Replace users of timespec64_trunc
> >       mount: Add mount warning for impending timestamp expiry
> >       utimes: Clamp the timestamps before update
> >       fs: Fill in max and min timestamps in superblock
> >       9p: Fill min and max timestamps in sb
> >       ext4: Initialize timestamps limits
> >       fs: nfs: Initialize filesystem timestamp ranges
> >       fs: cifs: Initialize filesystem timestamp ranges
> >       fs: fat: Initialize filesystem timestamp ranges
> >       fs: affs: Initialize filesystem timestamp ranges
> >       fs: sysv: Initialize filesystem timestamp ranges
> >       fs: ceph: Initialize filesystem timestamp ranges
> >       fs: orangefs: Initialize filesystem timestamp ranges
> >       fs: hpfs: Initialize filesystem timestamp ranges
> >       fs: omfs: Initialize filesystem timestamp ranges
> >       pstore: fs superblock limits
> >       isofs: Initialize filesystem timestamp ranges
> >
> >  fs/9p/vfs_super.c        |  6 +++++-
> >  fs/affs/amigaffs.c       |  2 +-
> >  fs/affs/amigaffs.h       |  3 +++
> >  fs/affs/inode.c          |  4 ++--
> >  fs/affs/super.c          |  4 ++++
> >  fs/attr.c                | 21 ++++++++++++---------
> >  fs/befs/linuxvfs.c       |  2 ++
> >  fs/bfs/inode.c           |  2 ++
> >  fs/ceph/super.c          |  2 ++
> >  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
> >  fs/cifs/netmisc.c        | 14 +++++++-------
> >  fs/coda/inode.c          |  3 +++
> >  fs/configfs/inode.c      | 12 ++++++------
> >  fs/cramfs/inode.c        |  2 ++
> >  fs/efs/super.c           |  2 ++
> >  fs/ext2/super.c          |  2 ++
> >  fs/ext4/ext4.h           | 10 +++++++++-
> >  fs/ext4/super.c          | 17 +++++++++++++++--
> >  fs/f2fs/file.c           | 21 ++++++++++++---------
> >  fs/fat/inode.c           | 12 ++++++++++++
> >  fs/freevxfs/vxfs_super.c |  2 ++
> >  fs/hpfs/hpfs_fn.h        |  6 ++----
> >  fs/hpfs/super.c          |  2 ++
> >  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
> >  fs/isofs/inode.c         |  7 +++++++
> >  fs/jffs2/fs.c            |  3 +++
> >  fs/jfs/super.c           |  2 ++
> >  fs/kernfs/inode.c        |  7 +++----
> >  fs/minix/inode.c         |  2 ++
> >  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
> >  fs/nfs/super.c           | 20 +++++++++++++++++++-
> >  fs/ntfs/inode.c          | 21 ++++++++++++---------
> >  fs/omfs/inode.c          |  4 ++++
> >  fs/orangefs/super.c      |  2 ++
> >  fs/pstore/ram.c          |  2 ++
> >  fs/qnx4/inode.c          |  2 ++
> >  fs/qnx6/inode.c          |  2 ++
> >  fs/reiserfs/super.c      |  3 +++
> >  fs/romfs/super.c         |  2 ++
> >  fs/squashfs/super.c      |  2 ++
> >  fs/super.c               |  2 ++
> >  fs/sysv/super.c          |  5 ++++-
> >  fs/ubifs/file.c          | 21 ++++++++++++---------
> >  fs/ufs/super.c           |  7 +++++++
> >  fs/utimes.c              |  6 ++----
> >  fs/xfs/xfs_super.c       |  2 ++
> >  include/linux/fs.h       |  5 +++++
> >  include/linux/time64.h   |  2 ++
> >  48 files changed, 298 insertions(+), 72 deletions(-)

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30  1:20     ` Mike Marshall
  0 siblings, 0 replies; 27+ messages in thread
From: Mike Marshall @ 2019-08-30  1:20 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, Bob Copeland, Adrian Hunter, Andreas Dilger,
	mikulas, stoph Hellwig, nico, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, linux, codalist, Christoph Hellwig,
	coda, V9FS Developers, Ilya Dryomov, Ext4 Developers List,
	salah.triki, asmadeus, devel, Evgeniy Dushistov, Kees Cook,
	Arnd Bergmann, Eric Van Hensbergen, Jan Kara, reiserfs-devel,
	Tejun Heo, Alexander Viro, aivazian.tigran, phillip, David Sterba,
	Jaegeuk Kim, ceph-devel, trond.myklebust, OGAWA Hirofumi,
	Andreas Dilger, Jan Harkes, Linux NFS Mailing List, Tony Luck,
	Theodore Ts'o, luisbg, Artem Bityutskiy, linux-ntfs-dev,
	Greg KH, linux-karma-devel, jlayton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

Hi Deepa...

I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
on orangefs and got a regression... generic/258 failed
with: "Timestamp wrapped"...

# cat results/generic/258.out.bad
QA output created by 258
Creating file with timestamp of Jan 1, 1960
Testing for negative seconds since epoch
Timestamp wrapped: 0
Timestamp wrapped
(see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
and 258 passed... then added the patch series back and the failure returned...

Also.... when I was using "git am" to apply the patch series, the ceph patch
failed, so I "git skipped" it...

I obtained the patch series from: https://github.com/deepa-hub/vfs limits
today.

-Mike

On Thu, Aug 29, 2019 at 12:38 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Adding the others who were on original cc, just in case.
> - Deepa
>
> On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> >
> > Hi Al, Arnd,
> >
> > This is a pull request for filling in min and max timestamps for filesystems.
> > I've added all the acks, and dropped the adfs patch. That will be merged through
> > Russell's tree.
> >
> > Thanks,
> > Deepa
> >
> > The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
> >
> >   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
> >
> > are available in the Git repository at:
> >
> >   https://github.com/deepa-hub/vfs limits
> >
> > for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
> >
> >   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
> >
> > ----------------------------------------------------------------
> > Deepa Dinamani (19):
> >       vfs: Add file timestamp range support
> >       vfs: Add timestamp_truncate() api
> >       timestamp_truncate: Replace users of timespec64_trunc
> >       mount: Add mount warning for impending timestamp expiry
> >       utimes: Clamp the timestamps before update
> >       fs: Fill in max and min timestamps in superblock
> >       9p: Fill min and max timestamps in sb
> >       ext4: Initialize timestamps limits
> >       fs: nfs: Initialize filesystem timestamp ranges
> >       fs: cifs: Initialize filesystem timestamp ranges
> >       fs: fat: Initialize filesystem timestamp ranges
> >       fs: affs: Initialize filesystem timestamp ranges
> >       fs: sysv: Initialize filesystem timestamp ranges
> >       fs: ceph: Initialize filesystem timestamp ranges
> >       fs: orangefs: Initialize filesystem timestamp ranges
> >       fs: hpfs: Initialize filesystem timestamp ranges
> >       fs: omfs: Initialize filesystem timestamp ranges
> >       pstore: fs superblock limits
> >       isofs: Initialize filesystem timestamp ranges
> >
> >  fs/9p/vfs_super.c        |  6 +++++-
> >  fs/affs/amigaffs.c       |  2 +-
> >  fs/affs/amigaffs.h       |  3 +++
> >  fs/affs/inode.c          |  4 ++--
> >  fs/affs/super.c          |  4 ++++
> >  fs/attr.c                | 21 ++++++++++++---------
> >  fs/befs/linuxvfs.c       |  2 ++
> >  fs/bfs/inode.c           |  2 ++
> >  fs/ceph/super.c          |  2 ++
> >  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
> >  fs/cifs/netmisc.c        | 14 +++++++-------
> >  fs/coda/inode.c          |  3 +++
> >  fs/configfs/inode.c      | 12 ++++++------
> >  fs/cramfs/inode.c        |  2 ++
> >  fs/efs/super.c           |  2 ++
> >  fs/ext2/super.c          |  2 ++
> >  fs/ext4/ext4.h           | 10 +++++++++-
> >  fs/ext4/super.c          | 17 +++++++++++++++--
> >  fs/f2fs/file.c           | 21 ++++++++++++---------
> >  fs/fat/inode.c           | 12 ++++++++++++
> >  fs/freevxfs/vxfs_super.c |  2 ++
> >  fs/hpfs/hpfs_fn.h        |  6 ++----
> >  fs/hpfs/super.c          |  2 ++
> >  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
> >  fs/isofs/inode.c         |  7 +++++++
> >  fs/jffs2/fs.c            |  3 +++
> >  fs/jfs/super.c           |  2 ++
> >  fs/kernfs/inode.c        |  7 +++----
> >  fs/minix/inode.c         |  2 ++
> >  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
> >  fs/nfs/super.c           | 20 +++++++++++++++++++-
> >  fs/ntfs/inode.c          | 21 ++++++++++++---------
> >  fs/omfs/inode.c          |  4 ++++
> >  fs/orangefs/super.c      |  2 ++
> >  fs/pstore/ram.c          |  2 ++
> >  fs/qnx4/inode.c          |  2 ++
> >  fs/qnx6/inode.c          |  2 ++
> >  fs/reiserfs/super.c      |  3 +++
> >  fs/romfs/super.c         |  2 ++
> >  fs/squashfs/super.c      |  2 ++
> >  fs/super.c               |  2 ++
> >  fs/sysv/super.c          |  5 ++++-
> >  fs/ubifs/file.c          | 21 ++++++++++++---------
> >  fs/ufs/super.c           |  7 +++++++
> >  fs/utimes.c              |  6 ++----
> >  fs/xfs/xfs_super.c       |  2 ++
> >  include/linux/fs.h       |  5 +++++
> >  include/linux/time64.h   |  2 ++
> >  48 files changed, 298 insertions(+), 72 deletions(-)


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30  1:20     ` Mike Marshall
  0 siblings, 0 replies; 27+ messages in thread
From: Mike Marshall @ 2019-08-30  1:20 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, yuchao0, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, nico, linux-cifs,
	Yan, Zheng, Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Arnd Bergmann, Eric Van Hensbergen,
	Jan Kara, reiserfs-devel, Tejun Heo, Alexander Viro,
	aivazian.tigran, phillip, David Sterba, Jaegeuk Kim, ceph-devel,
	trond.myklebust, OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o, luisbg,
	Artem Bityutskiy, linux-ntfs-dev, Greg KH, linux-karma-devel,
	jlayton, Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, linux-mtd,
	David Woodhouse, Anna Schumaker, Joel Becker

Hi Deepa...

I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
on orangefs and got a regression... generic/258 failed
with: "Timestamp wrapped"...

# cat results/generic/258.out.bad
QA output created by 258
Creating file with timestamp of Jan 1, 1960
Testing for negative seconds since epoch
Timestamp wrapped: 0
Timestamp wrapped
(see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
and 258 passed... then added the patch series back and the failure returned...

Also.... when I was using "git am" to apply the patch series, the ceph patch
failed, so I "git skipped" it...

I obtained the patch series from: https://github.com/deepa-hub/vfs limits
today.

-Mike

On Thu, Aug 29, 2019 at 12:38 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Adding the others who were on original cc, just in case.
> - Deepa
>
> On Wed, Aug 28, 2019 at 9:12 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> >
> > Hi Al, Arnd,
> >
> > This is a pull request for filling in min and max timestamps for filesystems.
> > I've added all the acks, and dropped the adfs patch. That will be merged through
> > Russell's tree.
> >
> > Thanks,
> > Deepa
> >
> > The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
> >
> >   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
> >
> > are available in the Git repository at:
> >
> >   https://github.com/deepa-hub/vfs limits
> >
> > for you to fetch changes up to f0f216afa4c7e4dee9121fde52ccf57f76119188:
> >
> >   isofs: Initialize filesystem timestamp ranges (2019-08-28 19:19:36 -0700)
> >
> > ----------------------------------------------------------------
> > Deepa Dinamani (19):
> >       vfs: Add file timestamp range support
> >       vfs: Add timestamp_truncate() api
> >       timestamp_truncate: Replace users of timespec64_trunc
> >       mount: Add mount warning for impending timestamp expiry
> >       utimes: Clamp the timestamps before update
> >       fs: Fill in max and min timestamps in superblock
> >       9p: Fill min and max timestamps in sb
> >       ext4: Initialize timestamps limits
> >       fs: nfs: Initialize filesystem timestamp ranges
> >       fs: cifs: Initialize filesystem timestamp ranges
> >       fs: fat: Initialize filesystem timestamp ranges
> >       fs: affs: Initialize filesystem timestamp ranges
> >       fs: sysv: Initialize filesystem timestamp ranges
> >       fs: ceph: Initialize filesystem timestamp ranges
> >       fs: orangefs: Initialize filesystem timestamp ranges
> >       fs: hpfs: Initialize filesystem timestamp ranges
> >       fs: omfs: Initialize filesystem timestamp ranges
> >       pstore: fs superblock limits
> >       isofs: Initialize filesystem timestamp ranges
> >
> >  fs/9p/vfs_super.c        |  6 +++++-
> >  fs/affs/amigaffs.c       |  2 +-
> >  fs/affs/amigaffs.h       |  3 +++
> >  fs/affs/inode.c          |  4 ++--
> >  fs/affs/super.c          |  4 ++++
> >  fs/attr.c                | 21 ++++++++++++---------
> >  fs/befs/linuxvfs.c       |  2 ++
> >  fs/bfs/inode.c           |  2 ++
> >  fs/ceph/super.c          |  2 ++
> >  fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
> >  fs/cifs/netmisc.c        | 14 +++++++-------
> >  fs/coda/inode.c          |  3 +++
> >  fs/configfs/inode.c      | 12 ++++++------
> >  fs/cramfs/inode.c        |  2 ++
> >  fs/efs/super.c           |  2 ++
> >  fs/ext2/super.c          |  2 ++
> >  fs/ext4/ext4.h           | 10 +++++++++-
> >  fs/ext4/super.c          | 17 +++++++++++++++--
> >  fs/f2fs/file.c           | 21 ++++++++++++---------
> >  fs/fat/inode.c           | 12 ++++++++++++
> >  fs/freevxfs/vxfs_super.c |  2 ++
> >  fs/hpfs/hpfs_fn.h        |  6 ++----
> >  fs/hpfs/super.c          |  2 ++
> >  fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
> >  fs/isofs/inode.c         |  7 +++++++
> >  fs/jffs2/fs.c            |  3 +++
> >  fs/jfs/super.c           |  2 ++
> >  fs/kernfs/inode.c        |  7 +++----
> >  fs/minix/inode.c         |  2 ++
> >  fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
> >  fs/nfs/super.c           | 20 +++++++++++++++++++-
> >  fs/ntfs/inode.c          | 21 ++++++++++++---------
> >  fs/omfs/inode.c          |  4 ++++
> >  fs/orangefs/super.c      |  2 ++
> >  fs/pstore/ram.c          |  2 ++
> >  fs/qnx4/inode.c          |  2 ++
> >  fs/qnx6/inode.c          |  2 ++
> >  fs/reiserfs/super.c      |  3 +++
> >  fs/romfs/super.c         |  2 ++
> >  fs/squashfs/super.c      |  2 ++
> >  fs/super.c               |  2 ++
> >  fs/sysv/super.c          |  5 ++++-
> >  fs/ubifs/file.c          | 21 ++++++++++++---------
> >  fs/ufs/super.c           |  7 +++++++
> >  fs/utimes.c              |  6 ++----
> >  fs/xfs/xfs_super.c       |  2 ++
> >  include/linux/fs.h       |  5 +++++
> >  include/linux/time64.h   |  2 ++
> >  48 files changed, 298 insertions(+), 72 deletions(-)

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-30  1:20     ` [f2fs-dev] " Mike Marshall
  (?)
  (?)
@ 2019-08-30  2:02       ` Deepa Dinamani
  -1 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30  2:02 UTC (permalink / raw)
  To: Mike Marshall
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, Bob Copeland, Adrian Hunter, Andreas Dilger,
	mikulas, stoph Hellwig, nico, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, linux, codalist, Christoph Hellwig,
	coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List <linux-ext4@

On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
>
> Hi Deepa...
>
> I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> on orangefs and got a regression... generic/258 failed
> with: "Timestamp wrapped"...
>
> # cat results/generic/258.out.bad
> QA output created by 258
> Creating file with timestamp of Jan 1, 1960
> Testing for negative seconds since epoch
> Timestamp wrapped: 0
> Timestamp wrapped
> (see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
that orangefs does not support negative timestamps.
And, the reason was pointed out in the commit text:

----------------------
Assume the limits as unsigned according to the below
commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
in https://github.com/waltligon/orangefs

Author: Neill Miller <neillm@mcs.anl.gov>
Date:   Thu Sep 2 15:00:38 2004 +0000
--------------------

So the timestamp being wrapped to 0 in this case is correct behavior
according to my patchset.
The generic/258 assumes that the timestamps can be negative. If this
is not true then it should not be run for this fs.

But, if you think the timestamp should support negative timestamps for
orangefs, I'd be happy to change it.

> Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
> and 258 passed... then added the patch series back and the failure returned...
>
> Also.... when I was using "git am" to apply the patch series, the ceph patch
> failed, so I "git skipped" it...

My series applies cleanly against linux-next as of yesterday.

-Deepa

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30  2:02       ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30  2:02 UTC (permalink / raw)
  To: Mike Marshall
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, Bob Copeland, Adrian Hunter, Andreas Dilger,
	mikulas, stoph Hellwig, nico, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, linux, codalist, Christoph Hellwig,
	coda, V9FS Developers, Ilya Dryomov, Ext4 Developers List,
	salah.triki, asmadeus, devel, Evgeniy Dushistov, Kees Cook,
	Arnd Bergmann, Eric Van Hensbergen, Jan Kara, reiserfs-devel,
	Tejun Heo, Alexander Viro, aivazian.tigran, phillip, David Sterba,
	Jaegeuk Kim, ceph-devel, trond.myklebust, OGAWA Hirofumi,
	Andreas Dilger, Jan Harkes, Linux NFS Mailing List, Tony Luck,
	Theodore Ts'o, luisbg, Artem Bityutskiy, linux-ntfs-dev,
	Greg KH, linux-karma-devel, jlayton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
>
> Hi Deepa...
>
> I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> on orangefs and got a regression... generic/258 failed
> with: "Timestamp wrapped"...
>
> # cat results/generic/258.out.bad
> QA output created by 258
> Creating file with timestamp of Jan 1, 1960
> Testing for negative seconds since epoch
> Timestamp wrapped: 0
> Timestamp wrapped
> (see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
that orangefs does not support negative timestamps.
And, the reason was pointed out in the commit text:

----------------------
Assume the limits as unsigned according to the below
commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
in https://github.com/waltligon/orangefs

Author: Neill Miller <neillm@mcs.anl.gov>
Date:   Thu Sep 2 15:00:38 2004 +0000
--------------------

So the timestamp being wrapped to 0 in this case is correct behavior
according to my patchset.
The generic/258 assumes that the timestamps can be negative. If this
is not true then it should not be run for this fs.

But, if you think the timestamp should support negative timestamps for
orangefs, I'd be happy to change it.

> Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
> and 258 passed... then added the patch series back and the failure returned...
>
> Also.... when I was using "git am" to apply the patch series, the ceph patch
> failed, so I "git skipped" it...

My series applies cleanly against linux-next as of yesterday.

-Deepa


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30  2:02       ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30  2:02 UTC (permalink / raw)
  To: Mike Marshall
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, yuchao0, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, nico, linux-cifs,
	Yan, Zheng, Sage Weil, Darrick J. Wong, y2038 Mailman List,
	Richard Weinberger, Steve French, Anton Vorontsov, linux,
	codalist, Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Arnd Bergmann, Eric Van Hensbergen,
	Jan Kara, reiserfs-devel, Tejun Heo, Alexander Viro,
	aivazian.tigran, phillip, David Sterba, Jaegeuk Kim, ceph-devel,
	trond.myklebust, OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o, luisbg,
	Artem Bityutskiy, linux-ntfs-dev, Greg KH, linux-karma-devel,
	jlayton, Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, linux-mtd,
	David Woodhouse, Anna Schumaker, Joel Becker

On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
>
> Hi Deepa...
>
> I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> on orangefs and got a regression... generic/258 failed
> with: "Timestamp wrapped"...
>
> # cat results/generic/258.out.bad
> QA output created by 258
> Creating file with timestamp of Jan 1, 1960
> Testing for negative seconds since epoch
> Timestamp wrapped: 0
> Timestamp wrapped
> (see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
that orangefs does not support negative timestamps.
And, the reason was pointed out in the commit text:

----------------------
Assume the limits as unsigned according to the below
commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
in https://github.com/waltligon/orangefs

Author: Neill Miller <neillm@mcs.anl.gov>
Date:   Thu Sep 2 15:00:38 2004 +0000
--------------------

So the timestamp being wrapped to 0 in this case is correct behavior
according to my patchset.
The generic/258 assumes that the timestamps can be negative. If this
is not true then it should not be run for this fs.

But, if you think the timestamp should support negative timestamps for
orangefs, I'd be happy to change it.

> Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
> and 258 passed... then added the patch series back and the failure returned...
>
> Also.... when I was using "git am" to apply the patch series, the ceph patch
> failed, so I "git skipped" it...

My series applies cleanly against linux-next as of yesterday.

-Deepa

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30  2:02       ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30  2:02 UTC (permalink / raw)
  To: Mike Marshall
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, al, Bob Copeland, Adrian Hunter, Andreas Dilger,
	mikulas, stoph Hellwig, nico, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, linux, codalist, Christoph Hellwig,
	coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List <>

On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
>
> Hi Deepa...
>
> I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> on orangefs and got a regression... generic/258 failed
> with: "Timestamp wrapped"...
>
> # cat results/generic/258.out.bad
> QA output created by 258
> Creating file with timestamp of Jan 1, 1960
> Testing for negative seconds since epoch
> Timestamp wrapped: 0
> Timestamp wrapped
> (see /home/hubcap/xfstests-dev/results//generic/258.full for details)

Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
that orangefs does not support negative timestamps.
And, the reason was pointed out in the commit text:

----------------------
Assume the limits as unsigned according to the below
commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
in https://github.com/waltligon/orangefs

Author: Neill Miller <neillm@mcs.anl.gov>
Date:   Thu Sep 2 15:00:38 2004 +0000
--------------------

So the timestamp being wrapped to 0 in this case is correct behavior
according to my patchset.
The generic/258 assumes that the timestamps can be negative. If this
is not true then it should not be run for this fs.

But, if you think the timestamp should support negative timestamps for
orangefs, I'd be happy to change it.

> Just to double check, I compiled Linux 5.3-rc6 without the timestamp series,
> and 258 passed... then added the patch series back and the failure returned...
>
> Also.... when I was using "git am" to apply the patch series, the ceph patch
> failed, so I "git skipped" it...

My series applies cleanly against linux-next as of yesterday.

-Deepa

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-29  4:11 [GIT PULL] vfs: Add support for timestamp limits Deepa Dinamani
  2019-08-29  4:38   ` [f2fs-dev] " Deepa Dinamani
@ 2019-08-30 12:56 ` Arnd Bergmann
  2019-08-30 15:47     ` Deepa Dinamani
  1 sibling, 1 reply; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 12:56 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Al Viro, Andreas Dilger, aivazian.tigran, Darrick J. Wong,
	David Sterba, gregkh, Jeff Layton, Kees Cook, me,
	Russell King - ARM Linux, Linux Kernel Mailing List,
	Linux FS-devel Mailing List, y2038 Mailman List

On Thu, Aug 29, 2019 at 6:12 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Thanks,
> Deepa
>
> The following changes since commit 5d18cb62218608a1388858880ad3ec76d6cb0d3b:
>
>   Add linux-next specific files for 20190828 (2019-08-28 19:59:14 +1000)
>
> are available in the Git repository at:
>
>   https://github.com/deepa-hub/vfs limits

Please rebase this branch on top of linux-5.3-rc6 and resend.
I can't pull a branch that contains linux-next.

Maybe drop the orangefs patch for now, at least until we have come
to a conclusion on that.

       Arnd

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-30  2:02       ` [f2fs-dev] " Deepa Dinamani
  (?)
@ 2019-08-30 13:58         ` Arnd Bergmann
  -1 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 13:58 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers <v9fs-develo>

On Fri, Aug 30, 2019 at 4:02 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
> >
> > Hi Deepa...
> >
> > I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> > on orangefs and got a regression... generic/258 failed
> > with: "Timestamp wrapped"...
> >
> > # cat results/generic/258.out.bad
> > QA output created by 258
> > Creating file with timestamp of Jan 1, 1960
> > Testing for negative seconds since epoch
> > Timestamp wrapped: 0
> > Timestamp wrapped
> > (see /home/hubcap/xfstests-dev/results//generic/258.full for details)
>
> Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
> that orangefs does not support negative timestamps.
> And, the reason was pointed out in the commit text:
>
> ----------------------
> Assume the limits as unsigned according to the below
> commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
> in https://github.com/waltligon/orangefs
>
> Author: Neill Miller <neillm@mcs.anl.gov>
> Date:   Thu Sep 2 15:00:38 2004 +0000
> --------------------
>
> So the timestamp being wrapped to 0 in this case is correct behavior
> according to my patchset.
> The generic/258 assumes that the timestamps can be negative. If this
> is not true then it should not be run for this fs.
>
> But, if you think the timestamp should support negative timestamps for
> orangefs, I'd be happy to change it.

I think it's unclear from the orangefs source code what the intention is,
as there is a mixed of signed and unsigned types used for the inode
stamps:

#define encode_PVFS_time encode_int64_t
#define encode_int64_t(pptr,x) do { \
    *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
    *(pptr) += 8; \
} while (0)
#define decode_PVFS_time decode_int64_t
#define decode_int64_t(pptr,x) do { \
    *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
    *(pptr) += 8; \
} while (0)

This suggests that making it unsigned may have been an accident.

Then again,  it's clearly and consistently printed as unsigned in
user space:

        gossip_debug(
            GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
            llu(s_op->attr.mtime), llu(resp_attr->mtime));

A related issue I noticed is this:

PVFS_time PINT_util_mktime_version(PVFS_time time)
{
    struct timeval t = {0,0};
    PVFS_time version = (time << 32);

    gettimeofday(&t, NULL);
    version |= (PVFS_time)t.tv_usec;
    return version;
}
PVFS_time PINT_util_mkversion_time(PVFS_time version)
{
    return (PVFS_time)(version >> 32);
}
static PINT_sm_action getattr_verify_attribs(
        struct PINT_smcb *smcb, job_status_s *js_p)
{
...
    resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
...
}

which suggests that at least for some purposes, the mtime field
is only an unsigned 32-bit number (1970..2106). From my readiing,
this affects the on-disk format, but not the protocol implemented
by the kernel.

atime and ctime are apparently 64-bit, but mtime is only 32-bit
seconds, plus a 32-bit 'version'. I suppose the server could be
fixed to allow a larger range, but probably would take it out of
the 'version' bits, not the upper half.

To be on the safe side, I suppose the kernel can only assume
an unsigned 32-bit range to be available. If the server gets
extended beyond that, it would have to pass a feature flag.

     Arnd

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30 13:58         ` Arnd Bergmann
  0 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 13:58 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Alexander Viro, aivazian.tigran,
	phillip, David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o,
	Luis de Bethencourt, Artem Bityutskiy, linux-ntfs-dev, Greg KH,
	linux-karma-devel, Jeff Layton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

On Fri, Aug 30, 2019 at 4:02 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
> >
> > Hi Deepa...
> >
> > I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> > on orangefs and got a regression... generic/258 failed
> > with: "Timestamp wrapped"...
> >
> > # cat results/generic/258.out.bad
> > QA output created by 258
> > Creating file with timestamp of Jan 1, 1960
> > Testing for negative seconds since epoch
> > Timestamp wrapped: 0
> > Timestamp wrapped
> > (see /home/hubcap/xfstests-dev/results//generic/258.full for details)
>
> Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
> that orangefs does not support negative timestamps.
> And, the reason was pointed out in the commit text:
>
> ----------------------
> Assume the limits as unsigned according to the below
> commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
> in https://github.com/waltligon/orangefs
>
> Author: Neill Miller <neillm@mcs.anl.gov>
> Date:   Thu Sep 2 15:00:38 2004 +0000
> --------------------
>
> So the timestamp being wrapped to 0 in this case is correct behavior
> according to my patchset.
> The generic/258 assumes that the timestamps can be negative. If this
> is not true then it should not be run for this fs.
>
> But, if you think the timestamp should support negative timestamps for
> orangefs, I'd be happy to change it.

I think it's unclear from the orangefs source code what the intention is,
as there is a mixed of signed and unsigned types used for the inode
stamps:

#define encode_PVFS_time encode_int64_t
#define encode_int64_t(pptr,x) do { \
    *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
    *(pptr) += 8; \
} while (0)
#define decode_PVFS_time decode_int64_t
#define decode_int64_t(pptr,x) do { \
    *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
    *(pptr) += 8; \
} while (0)

This suggests that making it unsigned may have been an accident.

Then again,  it's clearly and consistently printed as unsigned in
user space:

        gossip_debug(
            GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
            llu(s_op->attr.mtime), llu(resp_attr->mtime));

A related issue I noticed is this:

PVFS_time PINT_util_mktime_version(PVFS_time time)
{
    struct timeval t = {0,0};
    PVFS_time version = (time << 32);

    gettimeofday(&t, NULL);
    version |= (PVFS_time)t.tv_usec;
    return version;
}
PVFS_time PINT_util_mkversion_time(PVFS_time version)
{
    return (PVFS_time)(version >> 32);
}
static PINT_sm_action getattr_verify_attribs(
        struct PINT_smcb *smcb, job_status_s *js_p)
{
...
    resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
...
}

which suggests that at least for some purposes, the mtime field
is only an unsigned 32-bit number (1970..2106). From my readiing,
this affects the on-disk format, but not the protocol implemented
by the kernel.

atime and ctime are apparently 64-bit, but mtime is only 32-bit
seconds, plus a 32-bit 'version'. I suppose the server could be
fixed to allow a larger range, but probably would take it out of
the 'version' bits, not the upper half.

To be on the safe side, I suppose the kernel can only assume
an unsigned 32-bit range to be available. If the server gets
extended beyond that, it would have to pass a feature flag.

     Arnd


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-30 13:58         ` Arnd Bergmann
  0 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 13:58 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Chao Yu, Bob Copeland,
	Adrian Hunter, Andreas Dilger, mikulas, stoph Hellwig,
	Nicolas Pitre, Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Alexander Viro, aivazian.tigran,
	phillip, David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o,
	Luis de Bethencourt, Artem Bityutskiy, linux-ntfs-dev, Greg KH,
	linux-karma-devel, Jeff Layton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

On Fri, Aug 30, 2019 at 4:02 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> On Thu, Aug 29, 2019 at 6:20 PM Mike Marshall <hubcap@omnibond.com> wrote:
> >
> > Hi Deepa...
> >
> > I installed this patch series on top of Linux 5.3-rc6 and ran xfstests
> > on orangefs and got a regression... generic/258 failed
> > with: "Timestamp wrapped"...
> >
> > # cat results/generic/258.out.bad
> > QA output created by 258
> > Creating file with timestamp of Jan 1, 1960
> > Testing for negative seconds since epoch
> > Timestamp wrapped: 0
> > Timestamp wrapped
> > (see /home/hubcap/xfstests-dev/results//generic/258.full for details)
>
> Note that patch [16/20] https://lkml.org/lkml/2019/8/18/193 assumes
> that orangefs does not support negative timestamps.
> And, the reason was pointed out in the commit text:
>
> ----------------------
> Assume the limits as unsigned according to the below
> commit 98e8eef557a9 ("changed PVFS_time from int64_t to uint64_t")
> in https://github.com/waltligon/orangefs
>
> Author: Neill Miller <neillm@mcs.anl.gov>
> Date:   Thu Sep 2 15:00:38 2004 +0000
> --------------------
>
> So the timestamp being wrapped to 0 in this case is correct behavior
> according to my patchset.
> The generic/258 assumes that the timestamps can be negative. If this
> is not true then it should not be run for this fs.
>
> But, if you think the timestamp should support negative timestamps for
> orangefs, I'd be happy to change it.

I think it's unclear from the orangefs source code what the intention is,
as there is a mixed of signed and unsigned types used for the inode
stamps:

#define encode_PVFS_time encode_int64_t
#define encode_int64_t(pptr,x) do { \
    *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
    *(pptr) += 8; \
} while (0)
#define decode_PVFS_time decode_int64_t
#define decode_int64_t(pptr,x) do { \
    *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
    *(pptr) += 8; \
} while (0)

This suggests that making it unsigned may have been an accident.

Then again,  it's clearly and consistently printed as unsigned in
user space:

        gossip_debug(
            GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
            llu(s_op->attr.mtime), llu(resp_attr->mtime));

A related issue I noticed is this:

PVFS_time PINT_util_mktime_version(PVFS_time time)
{
    struct timeval t = {0,0};
    PVFS_time version = (time << 32);

    gettimeofday(&t, NULL);
    version |= (PVFS_time)t.tv_usec;
    return version;
}
PVFS_time PINT_util_mkversion_time(PVFS_time version)
{
    return (PVFS_time)(version >> 32);
}
static PINT_sm_action getattr_verify_attribs(
        struct PINT_smcb *smcb, job_status_s *js_p)
{
...
    resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
...
}

which suggests that at least for some purposes, the mtime field
is only an unsigned 32-bit number (1970..2106). From my readiing,
this affects the on-disk format, but not the protocol implemented
by the kernel.

atime and ctime are apparently 64-bit, but mtime is only 32-bit
seconds, plus a 32-bit 'version'. I suppose the server could be
fixed to allow a larger range, but probably would take it out of
the 'version' bits, not the upper half.

To be on the safe side, I suppose the kernel can only assume
an unsigned 32-bit range to be available. If the server gets
extended beyond that, it would have to pass a feature flag.

     Arnd

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [GIT PULL RESEND] vfs: Add support for timestamp limits
  2019-08-30 12:56 ` Arnd Bergmann
  2019-08-30 15:47     ` Deepa Dinamani
  (?)
@ 2019-08-30 15:47     ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30 15:47 UTC (permalink / raw)
  To: arnd, viro
  Cc: adilger, aivazian.tigran, darrick.wong, deepa.kernel, dsterba,
	gregkh, jlayton, keescook, linux-fsdevel, linux-kernel, linux, me,
	y2038, adrian.hunter, al, anna.schumaker, anton, asmadeus, ccross,
	ceph-devel, coda, codalist, dedekind1, devel, dushistov, dwmw2,
	ericvh, hch, hch, hirofumi, hubcap, idryomov, jack, jaegeuk,
	jaharkes, jfs-discu

[resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]

Hi Al, Arnd,

This is a pull request for filling in min and max timestamps for filesystems.
I've added all the acks, and dropped the adfs patch. That will be merged through
Russell's tree.

Dropped orangefs until the maintainers decide what its limits should be.

The following changes since commit a55aa89aab90fae7c815b0551b07be37db359d76:

  Linux 5.3-rc6 (2019-08-25 12:01:23 -0700)

are available in the Git repository at:

  https://github.com/deepa-hub/vfs limits

for you to fetch changes up to 5ad32b3acded06183f40806f76b030c3143017bb:

  isofs: Initialize filesystem timestamp ranges (2019-08-30 08:11:25 -0700)

----------------------------------------------------------------

- Deepa

Deepa Dinamani (18):
      vfs: Add file timestamp range support
      vfs: Add timestamp_truncate() api
      timestamp_truncate: Replace users of timespec64_trunc
      mount: Add mount warning for impending timestamp expiry
      utimes: Clamp the timestamps before update
      fs: Fill in max and min timestamps in superblock
      9p: Fill min and max timestamps in sb
      ext4: Initialize timestamps limits
      fs: nfs: Initialize filesystem timestamp ranges
      fs: cifs: Initialize filesystem timestamp ranges
      fs: fat: Initialize filesystem timestamp ranges
      fs: affs: Initialize filesystem timestamp ranges
      fs: sysv: Initialize filesystem timestamp ranges
      fs: ceph: Initialize filesystem timestamp ranges
      fs: hpfs: Initialize filesystem timestamp ranges
      fs: omfs: Initialize filesystem timestamp ranges
      pstore: fs superblock limits
      isofs: Initialize filesystem timestamp ranges

 fs/9p/vfs_super.c        |  6 +++++-
 fs/affs/amigaffs.c       |  2 +-
 fs/affs/amigaffs.h       |  3 +++
 fs/affs/inode.c          |  4 ++--
 fs/affs/super.c          |  4 ++++
 fs/attr.c                | 21 ++++++++++++---------
 fs/befs/linuxvfs.c       |  2 ++
 fs/bfs/inode.c           |  2 ++
 fs/ceph/super.c          |  2 ++
 fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
 fs/cifs/netmisc.c        | 14 +++++++-------
 fs/coda/inode.c          |  3 +++
 fs/configfs/inode.c      | 12 ++++++------
 fs/cramfs/inode.c        |  2 ++
 fs/efs/super.c           |  2 ++
 fs/ext2/super.c          |  2 ++
 fs/ext4/ext4.h           | 10 +++++++++-
 fs/ext4/super.c          | 17 +++++++++++++++--
 fs/f2fs/file.c           | 21 ++++++++++++---------
 fs/fat/inode.c           | 12 ++++++++++++
 fs/freevxfs/vxfs_super.c |  2 ++
 fs/hpfs/hpfs_fn.h        |  6 ++----
 fs/hpfs/super.c          |  2 ++
 fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
 fs/isofs/inode.c         |  7 +++++++
 fs/jffs2/fs.c            |  3 +++
 fs/jfs/super.c           |  2 ++
 fs/kernfs/inode.c        |  7 +++----
 fs/minix/inode.c         |  2 ++
 fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
 fs/nfs/super.c           | 20 +++++++++++++++++++-
 fs/ntfs/inode.c          | 21 ++++++++++++---------
 fs/omfs/inode.c          |  4 ++++
 fs/pstore/ram.c          |  2 ++
 fs/qnx4/inode.c          |  2 ++
 fs/qnx6/inode.c          |  2 ++
 fs/reiserfs/super.c      |  3 +++
 fs/romfs/super.c         |  2 ++
 fs/squashfs/super.c      |  2 ++
 fs/super.c               |  2 ++
 fs/sysv/super.c          |  5 ++++-
 fs/ubifs/file.c          | 21 ++++++++++++---------
 fs/ufs/super.c           |  7 +++++++
 fs/utimes.c              |  6 ++----
 fs/xfs/xfs_super.c       |  2 ++
 include/linux/fs.h       |  5 +++++
 include/linux/time64.h   |  2 ++
 47 files changed, 296 insertions(+), 72 deletions(-)

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [GIT PULL RESEND] vfs: Add support for timestamp limits
@ 2019-08-30 15:47     ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30 15:47 UTC (permalink / raw)
  To: arnd, viro
  Cc: adilger, aivazian.tigran, darrick.wong, deepa.kernel, dsterba,
	gregkh, jlayton, keescook, linux-fsdevel, linux-kernel, linux, me,
	y2038, adrian.hunter, al, anna.schumaker, anton, asmadeus, ccross,
	ceph-devel, coda, codalist, dedekind1, devel, dushistov, dwmw2,
	ericvh, hch, hch, hirofumi, hubcap, idryomov, jack, jaegeuk,
	jaharkes, jfs-discussion, jlbec, linux-cifs, linux-ext4,
	linux-f2fs-devel, linux-karma-devel, linux-mtd, linux-nfs,
	linux-ntfs-dev, linux-xfs, lucho, luisbg, martin, mikulas, nico,
	phillip, reiserfs-devel, richard, sage, salah.triki, sfrench,
	shaggy, tj, tony.luck, trond.myklebust, tytso, v9fs-developer,
	yuchao0, zyan

[resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]

Hi Al, Arnd,

This is a pull request for filling in min and max timestamps for filesystems.
I've added all the acks, and dropped the adfs patch. That will be merged through
Russell's tree.

Dropped orangefs until the maintainers decide what its limits should be.

The following changes since commit a55aa89aab90fae7c815b0551b07be37db359d76:

  Linux 5.3-rc6 (2019-08-25 12:01:23 -0700)

are available in the Git repository at:

  https://github.com/deepa-hub/vfs limits

for you to fetch changes up to 5ad32b3acded06183f40806f76b030c3143017bb:

  isofs: Initialize filesystem timestamp ranges (2019-08-30 08:11:25 -0700)

----------------------------------------------------------------

- Deepa

Deepa Dinamani (18):
      vfs: Add file timestamp range support
      vfs: Add timestamp_truncate() api
      timestamp_truncate: Replace users of timespec64_trunc
      mount: Add mount warning for impending timestamp expiry
      utimes: Clamp the timestamps before update
      fs: Fill in max and min timestamps in superblock
      9p: Fill min and max timestamps in sb
      ext4: Initialize timestamps limits
      fs: nfs: Initialize filesystem timestamp ranges
      fs: cifs: Initialize filesystem timestamp ranges
      fs: fat: Initialize filesystem timestamp ranges
      fs: affs: Initialize filesystem timestamp ranges
      fs: sysv: Initialize filesystem timestamp ranges
      fs: ceph: Initialize filesystem timestamp ranges
      fs: hpfs: Initialize filesystem timestamp ranges
      fs: omfs: Initialize filesystem timestamp ranges
      pstore: fs superblock limits
      isofs: Initialize filesystem timestamp ranges

 fs/9p/vfs_super.c        |  6 +++++-
 fs/affs/amigaffs.c       |  2 +-
 fs/affs/amigaffs.h       |  3 +++
 fs/affs/inode.c          |  4 ++--
 fs/affs/super.c          |  4 ++++
 fs/attr.c                | 21 ++++++++++++---------
 fs/befs/linuxvfs.c       |  2 ++
 fs/bfs/inode.c           |  2 ++
 fs/ceph/super.c          |  2 ++
 fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
 fs/cifs/netmisc.c        | 14 +++++++-------
 fs/coda/inode.c          |  3 +++
 fs/configfs/inode.c      | 12 ++++++------
 fs/cramfs/inode.c        |  2 ++
 fs/efs/super.c           |  2 ++
 fs/ext2/super.c          |  2 ++
 fs/ext4/ext4.h           | 10 +++++++++-
 fs/ext4/super.c          | 17 +++++++++++++++--
 fs/f2fs/file.c           | 21 ++++++++++++---------
 fs/fat/inode.c           | 12 ++++++++++++
 fs/freevxfs/vxfs_super.c |  2 ++
 fs/hpfs/hpfs_fn.h        |  6 ++----
 fs/hpfs/super.c          |  2 ++
 fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
 fs/isofs/inode.c         |  7 +++++++
 fs/jffs2/fs.c            |  3 +++
 fs/jfs/super.c           |  2 ++
 fs/kernfs/inode.c        |  7 +++----
 fs/minix/inode.c         |  2 ++
 fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
 fs/nfs/super.c           | 20 +++++++++++++++++++-
 fs/ntfs/inode.c          | 21 ++++++++++++---------
 fs/omfs/inode.c          |  4 ++++
 fs/pstore/ram.c          |  2 ++
 fs/qnx4/inode.c          |  2 ++
 fs/qnx6/inode.c          |  2 ++
 fs/reiserfs/super.c      |  3 +++
 fs/romfs/super.c         |  2 ++
 fs/squashfs/super.c      |  2 ++
 fs/super.c               |  2 ++
 fs/sysv/super.c          |  5 ++++-
 fs/ubifs/file.c          | 21 ++++++++++++---------
 fs/ufs/super.c           |  7 +++++++
 fs/utimes.c              |  6 ++----
 fs/xfs/xfs_super.c       |  2 ++
 include/linux/fs.h       |  5 +++++
 include/linux/time64.h   |  2 ++
 47 files changed, 296 insertions(+), 72 deletions(-)

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [f2fs-dev] [GIT PULL RESEND] vfs: Add support for timestamp limits
@ 2019-08-30 15:47     ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30 15:47 UTC (permalink / raw)
  To: arnd, viro
  Cc: lucho, martin, jfs-discussion, shaggy, al, me, adrian.hunter,
	linux-mtd, deepa.kernel, mikulas, hch, nico, hubcap, linux-cifs,
	zyan, sage, darrick.wong, y2038, richard, sfrench, anton, linux,
	codalist, hch, coda, v9fs-developer, idryomov, linux-ext4,
	salah.triki, asmadeus, devel, dushistov, keescook, ericvh, jack,
	reiserfs-devel, tj, jlbec, aivazian.tigran, dsterba, jaegeuk,
	ceph-devel, trond.myklebust, hirofumi, adilger, jaharkes,
	linux-nfs, tony.luck, tytso, luisbg, dedekind1, linux-ntfs-dev,
	gregkh, linux-karma-devel, jlayton, linux-kernel,
	linux-f2fs-devel, linux-xfs, ccross, linux-fsdevel, phillip,
	dwmw2, anna.schumaker

[resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]

Hi Al, Arnd,

This is a pull request for filling in min and max timestamps for filesystems.
I've added all the acks, and dropped the adfs patch. That will be merged through
Russell's tree.

Dropped orangefs until the maintainers decide what its limits should be.

The following changes since commit a55aa89aab90fae7c815b0551b07be37db359d76:

  Linux 5.3-rc6 (2019-08-25 12:01:23 -0700)

are available in the Git repository at:

  https://github.com/deepa-hub/vfs limits

for you to fetch changes up to 5ad32b3acded06183f40806f76b030c3143017bb:

  isofs: Initialize filesystem timestamp ranges (2019-08-30 08:11:25 -0700)

----------------------------------------------------------------

- Deepa

Deepa Dinamani (18):
      vfs: Add file timestamp range support
      vfs: Add timestamp_truncate() api
      timestamp_truncate: Replace users of timespec64_trunc
      mount: Add mount warning for impending timestamp expiry
      utimes: Clamp the timestamps before update
      fs: Fill in max and min timestamps in superblock
      9p: Fill min and max timestamps in sb
      ext4: Initialize timestamps limits
      fs: nfs: Initialize filesystem timestamp ranges
      fs: cifs: Initialize filesystem timestamp ranges
      fs: fat: Initialize filesystem timestamp ranges
      fs: affs: Initialize filesystem timestamp ranges
      fs: sysv: Initialize filesystem timestamp ranges
      fs: ceph: Initialize filesystem timestamp ranges
      fs: hpfs: Initialize filesystem timestamp ranges
      fs: omfs: Initialize filesystem timestamp ranges
      pstore: fs superblock limits
      isofs: Initialize filesystem timestamp ranges

 fs/9p/vfs_super.c        |  6 +++++-
 fs/affs/amigaffs.c       |  2 +-
 fs/affs/amigaffs.h       |  3 +++
 fs/affs/inode.c          |  4 ++--
 fs/affs/super.c          |  4 ++++
 fs/attr.c                | 21 ++++++++++++---------
 fs/befs/linuxvfs.c       |  2 ++
 fs/bfs/inode.c           |  2 ++
 fs/ceph/super.c          |  2 ++
 fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
 fs/cifs/netmisc.c        | 14 +++++++-------
 fs/coda/inode.c          |  3 +++
 fs/configfs/inode.c      | 12 ++++++------
 fs/cramfs/inode.c        |  2 ++
 fs/efs/super.c           |  2 ++
 fs/ext2/super.c          |  2 ++
 fs/ext4/ext4.h           | 10 +++++++++-
 fs/ext4/super.c          | 17 +++++++++++++++--
 fs/f2fs/file.c           | 21 ++++++++++++---------
 fs/fat/inode.c           | 12 ++++++++++++
 fs/freevxfs/vxfs_super.c |  2 ++
 fs/hpfs/hpfs_fn.h        |  6 ++----
 fs/hpfs/super.c          |  2 ++
 fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
 fs/isofs/inode.c         |  7 +++++++
 fs/jffs2/fs.c            |  3 +++
 fs/jfs/super.c           |  2 ++
 fs/kernfs/inode.c        |  7 +++----
 fs/minix/inode.c         |  2 ++
 fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
 fs/nfs/super.c           | 20 +++++++++++++++++++-
 fs/ntfs/inode.c          | 21 ++++++++++++---------
 fs/omfs/inode.c          |  4 ++++
 fs/pstore/ram.c          |  2 ++
 fs/qnx4/inode.c          |  2 ++
 fs/qnx6/inode.c          |  2 ++
 fs/reiserfs/super.c      |  3 +++
 fs/romfs/super.c         |  2 ++
 fs/squashfs/super.c      |  2 ++
 fs/super.c               |  2 ++
 fs/sysv/super.c          |  5 ++++-
 fs/ubifs/file.c          | 21 ++++++++++++---------
 fs/ufs/super.c           |  7 +++++++
 fs/utimes.c              |  6 ++----
 fs/xfs/xfs_super.c       |  2 ++
 include/linux/fs.h       |  5 +++++
 include/linux/time64.h   |  2 ++
 47 files changed, 296 insertions(+), 72 deletions(-)


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [GIT PULL RESEND] vfs: Add support for timestamp limits
@ 2019-08-30 15:47     ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-30 15:47 UTC (permalink / raw)
  To: arnd, viro
  Cc: lucho, martin, jfs-discussion, shaggy, al, yuchao0, me,
	adrian.hunter, linux-mtd, deepa.kernel, mikulas, hch, nico,
	hubcap, linux-cifs, zyan, sage, darrick.wong, y2038, richard,
	sfrench, anton, linux, codalist, hch, coda, v9fs-developer,
	idryomov, linux-ext4, salah.triki, asmadeus, devel, dushistov,
	keescook, ericvh, jack, reiserfs-devel, tj, jlbec,
	aivazian.tigran, dsterba, jaegeuk, ceph-devel, trond.myklebust,
	hirofumi, adilger, jaharkes, linux-nfs, tony.luck, tytso, luisbg,
	dedekind1, linux-ntfs-dev, gregkh, linux-karma-devel, jlayton,
	linux-kernel, linux-f2fs-devel, linux-xfs, ccross, linux-fsdevel,
	phillip, dwmw2, anna.schumaker

[resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]

Hi Al, Arnd,

This is a pull request for filling in min and max timestamps for filesystems.
I've added all the acks, and dropped the adfs patch. That will be merged through
Russell's tree.

Dropped orangefs until the maintainers decide what its limits should be.

The following changes since commit a55aa89aab90fae7c815b0551b07be37db359d76:

  Linux 5.3-rc6 (2019-08-25 12:01:23 -0700)

are available in the Git repository at:

  https://github.com/deepa-hub/vfs limits

for you to fetch changes up to 5ad32b3acded06183f40806f76b030c3143017bb:

  isofs: Initialize filesystem timestamp ranges (2019-08-30 08:11:25 -0700)

----------------------------------------------------------------

- Deepa

Deepa Dinamani (18):
      vfs: Add file timestamp range support
      vfs: Add timestamp_truncate() api
      timestamp_truncate: Replace users of timespec64_trunc
      mount: Add mount warning for impending timestamp expiry
      utimes: Clamp the timestamps before update
      fs: Fill in max and min timestamps in superblock
      9p: Fill min and max timestamps in sb
      ext4: Initialize timestamps limits
      fs: nfs: Initialize filesystem timestamp ranges
      fs: cifs: Initialize filesystem timestamp ranges
      fs: fat: Initialize filesystem timestamp ranges
      fs: affs: Initialize filesystem timestamp ranges
      fs: sysv: Initialize filesystem timestamp ranges
      fs: ceph: Initialize filesystem timestamp ranges
      fs: hpfs: Initialize filesystem timestamp ranges
      fs: omfs: Initialize filesystem timestamp ranges
      pstore: fs superblock limits
      isofs: Initialize filesystem timestamp ranges

 fs/9p/vfs_super.c        |  6 +++++-
 fs/affs/amigaffs.c       |  2 +-
 fs/affs/amigaffs.h       |  3 +++
 fs/affs/inode.c          |  4 ++--
 fs/affs/super.c          |  4 ++++
 fs/attr.c                | 21 ++++++++++++---------
 fs/befs/linuxvfs.c       |  2 ++
 fs/bfs/inode.c           |  2 ++
 fs/ceph/super.c          |  2 ++
 fs/cifs/cifsfs.c         | 22 ++++++++++++++++++++++
 fs/cifs/netmisc.c        | 14 +++++++-------
 fs/coda/inode.c          |  3 +++
 fs/configfs/inode.c      | 12 ++++++------
 fs/cramfs/inode.c        |  2 ++
 fs/efs/super.c           |  2 ++
 fs/ext2/super.c          |  2 ++
 fs/ext4/ext4.h           | 10 +++++++++-
 fs/ext4/super.c          | 17 +++++++++++++++--
 fs/f2fs/file.c           | 21 ++++++++++++---------
 fs/fat/inode.c           | 12 ++++++++++++
 fs/freevxfs/vxfs_super.c |  2 ++
 fs/hpfs/hpfs_fn.h        |  6 ++----
 fs/hpfs/super.c          |  2 ++
 fs/inode.c               | 33 ++++++++++++++++++++++++++++++++-
 fs/isofs/inode.c         |  7 +++++++
 fs/jffs2/fs.c            |  3 +++
 fs/jfs/super.c           |  2 ++
 fs/kernfs/inode.c        |  7 +++----
 fs/minix/inode.c         |  2 ++
 fs/namespace.c           | 33 ++++++++++++++++++++++++++++++++-
 fs/nfs/super.c           | 20 +++++++++++++++++++-
 fs/ntfs/inode.c          | 21 ++++++++++++---------
 fs/omfs/inode.c          |  4 ++++
 fs/pstore/ram.c          |  2 ++
 fs/qnx4/inode.c          |  2 ++
 fs/qnx6/inode.c          |  2 ++
 fs/reiserfs/super.c      |  3 +++
 fs/romfs/super.c         |  2 ++
 fs/squashfs/super.c      |  2 ++
 fs/super.c               |  2 ++
 fs/sysv/super.c          |  5 ++++-
 fs/ubifs/file.c          | 21 ++++++++++++---------
 fs/ufs/super.c           |  7 +++++++
 fs/utimes.c              |  6 ++----
 fs/xfs/xfs_super.c       |  2 ++
 include/linux/fs.h       |  5 +++++
 include/linux/time64.h   |  2 ++
 47 files changed, 296 insertions(+), 72 deletions(-)

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL RESEND] vfs: Add support for timestamp limits
  2019-08-30 15:47     ` Deepa Dinamani
  (?)
@ 2019-08-30 16:23       ` Arnd Bergmann
  -1 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 16:23 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	linux-mtd, mikulas, Christoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Zheng Yan, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers <v9fs-devel>

On Fri, Aug 30, 2019 at 5:48 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> [resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Dropped orangefs until the maintainers decide what its limits should be.

I've merged this into my
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git y2038
branch. Since you did not include a tag description, I took the text from
the last patch series as the commit text, with a link to the pull request
on lore.kernel.org.

Al, let me know in case you have any objections to this going through
the y2038 branch, and you would rather take it through vfs.git.

     Arnd

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL RESEND] vfs: Add support for timestamp limits
@ 2019-08-30 16:23       ` Arnd Bergmann
  0 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 16:23 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	linux-mtd, mikulas, Christoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Zheng Yan, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Al Viro, aivazian.tigran, David Sterba,
	Jaegeuk Kim, ceph-devel, trond.myklebust, OGAWA Hirofumi,
	Andreas Dilger, Jan Harkes, Linux NFS Mailing List, Tony Luck,
	Theodore Ts'o, Luis de Bethencourt, Artem Bityutskiy,
	linux-ntfs-dev, gregkh, linux-karma-devel, Jeff Layton,
	Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, phillip,
	David Woodhouse, Anna.Schumaker@Netapp.com, Joel Becker

On Fri, Aug 30, 2019 at 5:48 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> [resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Dropped orangefs until the maintainers decide what its limits should be.

I've merged this into my
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git y2038
branch. Since you did not include a tag description, I took the text from
the last patch series as the commit text, with a link to the pull request
on lore.kernel.org.

Al, let me know in case you have any objections to this going through
the y2038 branch, and you would rather take it through vfs.git.

     Arnd


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL RESEND] vfs: Add support for timestamp limits
@ 2019-08-30 16:23       ` Arnd Bergmann
  0 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-08-30 16:23 UTC (permalink / raw)
  To: Deepa Dinamani
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Chao Yu, Bob Copeland,
	Adrian Hunter, linux-mtd, mikulas, Christoph Hellwig,
	Nicolas Pitre, Mike Marshall, linux-cifs, Zheng Yan, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Al Viro, aivazian.tigran, David Sterba,
	Jaegeuk Kim, ceph-devel, trond.myklebust, OGAWA Hirofumi,
	Andreas Dilger, Jan Harkes, Linux NFS Mailing List, Tony Luck,
	Theodore Ts'o, Luis de Bethencourt, Artem Bityutskiy,
	linux-ntfs-dev, gregkh, linux-karma-devel, Jeff Layton,
	Linux Kernel Mailing List, Linux F2FS DEV, Mailing List,
	linux-xfs, Colin Cross, Linux FS-devel Mailing List, phillip,
	David Woodhouse, Anna.Schumaker@Netapp.com, Joel Becker

On Fri, Aug 30, 2019 at 5:48 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> [resending, rebased onto linux v5.3-rc6, and dropped orangefs patch from the series]
>
> Hi Al, Arnd,
>
> This is a pull request for filling in min and max timestamps for filesystems.
> I've added all the acks, and dropped the adfs patch. That will be merged through
> Russell's tree.
>
> Dropped orangefs until the maintainers decide what its limits should be.

I've merged this into my
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git y2038
branch. Since you did not include a tag description, I took the text from
the last patch series as the commit text, with a link to the pull request
on lore.kernel.org.

Al, let me know in case you have any objections to this going through
the y2038 branch, and you would rather take it through vfs.git.

     Arnd

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-30 13:58         ` [f2fs-dev] " Arnd Bergmann
  (?)
@ 2019-08-31 22:50           ` Deepa Dinamani
  -1 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-31 22:50 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers <v9fs-develo>

> I think it's unclear from the orangefs source code what the intention is,
> as there is a mixed of signed and unsigned types used for the inode
> stamps:
>
> #define encode_PVFS_time encode_int64_t
> #define encode_int64_t(pptr,x) do { \
>     *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
>     *(pptr) += 8; \
> } while (0)
> #define decode_PVFS_time decode_int64_t
> #define decode_int64_t(pptr,x) do { \
>     *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
>     *(pptr) += 8; \
> } while (0)
>
> This suggests that making it unsigned may have been an accident.
>
> Then again,  it's clearly and consistently printed as unsigned in
> user space:
>
>         gossip_debug(
>             GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
>             llu(s_op->attr.mtime), llu(resp_attr->mtime));

I think I had noticed these two and decided maybe the intention was to
use unsigned types.

> A related issue I noticed is this:
>
> PVFS_time PINT_util_mktime_version(PVFS_time time)
> {
>     struct timeval t = {0,0};
>     PVFS_time version = (time << 32);
>
>     gettimeofday(&t, NULL);
>     version |= (PVFS_time)t.tv_usec;
>     return version;
> }
> PVFS_time PINT_util_mkversion_time(PVFS_time version)
> {
>     return (PVFS_time)(version >> 32);
> }
> static PINT_sm_action getattr_verify_attribs(
>         struct PINT_smcb *smcb, job_status_s *js_p)
> {
> ...
>     resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
> ...
> }
>
> which suggests that at least for some purposes, the mtime field
> is only an unsigned 32-bit number (1970..2106). From my readiing,
> this affects the on-disk format, but not the protocol implemented
> by the kernel.
>
> atime and ctime are apparently 64-bit, but mtime is only 32-bit
> seconds, plus a 32-bit 'version'. I suppose the server could be
> fixed to allow a larger range, but probably would take it out of
> the 'version' bits, not the upper half.

I had missed this part. Thanks.

> To be on the safe side, I suppose the kernel can only assume
> an unsigned 32-bit range to be available. If the server gets
> extended beyond that, it would have to pass a feature flag.

This makes sense to me also. And, as Arnd pointed out on the IRC, if
there are negative timestamps that are already in use, this will be a
problem for those use cases.
I can update tha patch to use limits 0-u32_max.

-Deepa

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [f2fs-dev] [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-31 22:50           ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-31 22:50 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Bob Copeland, Adrian Hunter,
	Andreas Dilger, mikulas, stoph Hellwig, Nicolas Pitre,
	Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil, Darrick J. Wong,
	y2038 Mailman List, Richard Weinberger, Steve French,
	Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Alexander Viro, aivazian.tigran,
	phillip, David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o,
	Luis de Bethencourt, Artem Bityutskiy, linux-ntfs-dev, Greg KH,
	linux-karma-devel, Jeff Layton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

> I think it's unclear from the orangefs source code what the intention is,
> as there is a mixed of signed and unsigned types used for the inode
> stamps:
>
> #define encode_PVFS_time encode_int64_t
> #define encode_int64_t(pptr,x) do { \
>     *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
>     *(pptr) += 8; \
> } while (0)
> #define decode_PVFS_time decode_int64_t
> #define decode_int64_t(pptr,x) do { \
>     *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
>     *(pptr) += 8; \
> } while (0)
>
> This suggests that making it unsigned may have been an accident.
>
> Then again,  it's clearly and consistently printed as unsigned in
> user space:
>
>         gossip_debug(
>             GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
>             llu(s_op->attr.mtime), llu(resp_attr->mtime));

I think I had noticed these two and decided maybe the intention was to
use unsigned types.

> A related issue I noticed is this:
>
> PVFS_time PINT_util_mktime_version(PVFS_time time)
> {
>     struct timeval t = {0,0};
>     PVFS_time version = (time << 32);
>
>     gettimeofday(&t, NULL);
>     version |= (PVFS_time)t.tv_usec;
>     return version;
> }
> PVFS_time PINT_util_mkversion_time(PVFS_time version)
> {
>     return (PVFS_time)(version >> 32);
> }
> static PINT_sm_action getattr_verify_attribs(
>         struct PINT_smcb *smcb, job_status_s *js_p)
> {
> ...
>     resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
> ...
> }
>
> which suggests that at least for some purposes, the mtime field
> is only an unsigned 32-bit number (1970..2106). From my readiing,
> this affects the on-disk format, but not the protocol implemented
> by the kernel.
>
> atime and ctime are apparently 64-bit, but mtime is only 32-bit
> seconds, plus a 32-bit 'version'. I suppose the server could be
> fixed to allow a larger range, but probably would take it out of
> the 'version' bits, not the upper half.

I had missed this part. Thanks.

> To be on the safe side, I suppose the kernel can only assume
> an unsigned 32-bit range to be available. If the server gets
> extended beyond that, it would have to pass a feature flag.

This makes sense to me also. And, as Arnd pointed out on the IRC, if
there are negative timestamps that are already in use, this will be a
problem for those use cases.
I can update tha patch to use limits 0-u32_max.

-Deepa


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
@ 2019-08-31 22:50           ` Deepa Dinamani
  0 siblings, 0 replies; 27+ messages in thread
From: Deepa Dinamani @ 2019-08-31 22:50 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Latchesar Ionkov, Martin Brandenburg, jfs-discussion,
	Dave Kleikamp, Anders Larsen, Chao Yu, Bob Copeland,
	Adrian Hunter, Andreas Dilger, mikulas, stoph Hellwig,
	Nicolas Pitre, Mike Marshall, linux-cifs, Yan, Zheng, Sage Weil,
	Darrick J. Wong, y2038 Mailman List, Richard Weinberger,
	Steve French, Anton Vorontsov, Russell King - ARM Linux, codalist,
	Christoph Hellwig, coda, V9FS Developers, Ilya Dryomov,
	Ext4 Developers List, salah.triki, asmadeus, devel,
	Evgeniy Dushistov, Kees Cook, Eric Van Hensbergen, Jan Kara,
	reiserfs-devel, Tejun Heo, Alexander Viro, aivazian.tigran,
	phillip, David Sterba, Jaegeuk Kim, ceph-devel, trond.myklebust,
	OGAWA Hirofumi, Andreas Dilger, Jan Harkes,
	Linux NFS Mailing List, Tony Luck, Theodore Ts'o,
	Luis de Bethencourt, Artem Bityutskiy, linux-ntfs-dev, Greg KH,
	linux-karma-devel, Jeff Layton, Linux Kernel Mailing List,
	Linux F2FS DEV, Mailing List, linux-xfs, Colin Cross,
	Linux FS-devel Mailing List, linux-mtd, David Woodhouse,
	Anna Schumaker, Joel Becker

> I think it's unclear from the orangefs source code what the intention is,
> as there is a mixed of signed and unsigned types used for the inode
> stamps:
>
> #define encode_PVFS_time encode_int64_t
> #define encode_int64_t(pptr,x) do { \
>     *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
>     *(pptr) += 8; \
> } while (0)
> #define decode_PVFS_time decode_int64_t
> #define decode_int64_t(pptr,x) do { \
>     *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
>     *(pptr) += 8; \
> } while (0)
>
> This suggests that making it unsigned may have been an accident.
>
> Then again,  it's clearly and consistently printed as unsigned in
> user space:
>
>         gossip_debug(
>             GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
>             llu(s_op->attr.mtime), llu(resp_attr->mtime));

I think I had noticed these two and decided maybe the intention was to
use unsigned types.

> A related issue I noticed is this:
>
> PVFS_time PINT_util_mktime_version(PVFS_time time)
> {
>     struct timeval t = {0,0};
>     PVFS_time version = (time << 32);
>
>     gettimeofday(&t, NULL);
>     version |= (PVFS_time)t.tv_usec;
>     return version;
> }
> PVFS_time PINT_util_mkversion_time(PVFS_time version)
> {
>     return (PVFS_time)(version >> 32);
> }
> static PINT_sm_action getattr_verify_attribs(
>         struct PINT_smcb *smcb, job_status_s *js_p)
> {
> ...
>     resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
> ...
> }
>
> which suggests that at least for some purposes, the mtime field
> is only an unsigned 32-bit number (1970..2106). From my readiing,
> this affects the on-disk format, but not the protocol implemented
> by the kernel.
>
> atime and ctime are apparently 64-bit, but mtime is only 32-bit
> seconds, plus a 32-bit 'version'. I suppose the server could be
> fixed to allow a larger range, but probably would take it out of
> the 'version' bits, not the upper half.

I had missed this part. Thanks.

> To be on the safe side, I suppose the kernel can only assume
> an unsigned 32-bit range to be available. If the server gets
> extended beyond that, it would have to pass a feature flag.

This makes sense to me also. And, as Arnd pointed out on the IRC, if
there are negative timestamps that are already in use, this will be a
problem for those use cases.
I can update tha patch to use limits 0-u32_max.

-Deepa

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-08-31 22:50           ` [f2fs-dev] " Deepa Dinamani
  (?)
  (?)
@ 2019-09-05 16:58           ` Mike Marshall
  2019-09-05 18:33             ` Arnd Bergmann
  -1 siblings, 1 reply; 27+ messages in thread
From: Mike Marshall @ 2019-09-05 16:58 UTC (permalink / raw)
  To: Deepa Dinamani, Arnd Bergmann, linux-fsdevel, Mike Marshall

I spoke to Walt Ligon about the versioning code, and also shared
this thread with him. He isn't a fan of the versioning code.
and we think it should go. As I read through the commit messages
from when the versioning code was added, it relates to mtime
on directories. If a directory is read, and it has enough entries,
it might take several operations to collect all the entries. During
this time the directory might change. The versioning is a way to
tell that something changed between one of the operations...

   commit: 7878027e9c2 (Oct 2004)
     - added a directory version that is passed back from the server to
       the client on each successful readdir call (happens to be the
       directory's mtime encoded as an opaque uint64_t)

We will work to see if we can figure out what we need to do to Orangefs
on both the userspace side and the kernel module side to have all 64 bit
time values.

I've also read up some on the y2038 cleanup work that Arnd and Deepa
have been doing...

Thanks to Arnd and Deepa for looking so deeply into the Orangefs
userspace code...

-Mike

On Sat, Aug 31, 2019 at 6:50 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> > I think it's unclear from the orangefs source code what the intention is,
> > as there is a mixed of signed and unsigned types used for the inode
> > stamps:
> >
> > #define encode_PVFS_time encode_int64_t
> > #define encode_int64_t(pptr,x) do { \
> >     *(int64_t*) *(pptr) = cpu_to_le64(*(x)); \
> >     *(pptr) += 8; \
> > } while (0)
> > #define decode_PVFS_time decode_int64_t
> > #define decode_int64_t(pptr,x) do { \
> >     *(x) = le64_to_cpu(*(int64_t*) *(pptr)); \
> >     *(pptr) += 8; \
> > } while (0)
> >
> > This suggests that making it unsigned may have been an accident.
> >
> > Then again,  it's clearly and consistently printed as unsigned in
> > user space:
> >
> >         gossip_debug(
> >             GOSSIP_GETATTR_DEBUG, " VERSION is %llu, mtime is %llu\n",
> >             llu(s_op->attr.mtime), llu(resp_attr->mtime));
>
> I think I had noticed these two and decided maybe the intention was to
> use unsigned types.
>
> > A related issue I noticed is this:
> >
> > PVFS_time PINT_util_mktime_version(PVFS_time time)
> > {
> >     struct timeval t = {0,0};
> >     PVFS_time version = (time << 32);
> >
> >     gettimeofday(&t, NULL);
> >     version |= (PVFS_time)t.tv_usec;
> >     return version;
> > }
> > PVFS_time PINT_util_mkversion_time(PVFS_time version)
> > {
> >     return (PVFS_time)(version >> 32);
> > }
> > static PINT_sm_action getattr_verify_attribs(
> >         struct PINT_smcb *smcb, job_status_s *js_p)
> > {
> > ...
> >     resp_attr->mtime = PINT_util_mkversion_time(s_op->attr.mtime);
> > ...
> > }
> >
> > which suggests that at least for some purposes, the mtime field
> > is only an unsigned 32-bit number (1970..2106). From my readiing,
> > this affects the on-disk format, but not the protocol implemented
> > by the kernel.
> >
> > atime and ctime are apparently 64-bit, but mtime is only 32-bit
> > seconds, plus a 32-bit 'version'. I suppose the server could be
> > fixed to allow a larger range, but probably would take it out of
> > the 'version' bits, not the upper half.
>
> I had missed this part. Thanks.
>
> > To be on the safe side, I suppose the kernel can only assume
> > an unsigned 32-bit range to be available. If the server gets
> > extended beyond that, it would have to pass a feature flag.
>
> This makes sense to me also. And, as Arnd pointed out on the IRC, if
> there are negative timestamps that are already in use, this will be a
> problem for those use cases.
> I can update tha patch to use limits 0-u32_max.
>
> -Deepa

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [GIT PULL] vfs: Add support for timestamp limits
  2019-09-05 16:58           ` Mike Marshall
@ 2019-09-05 18:33             ` Arnd Bergmann
  0 siblings, 0 replies; 27+ messages in thread
From: Arnd Bergmann @ 2019-09-05 18:33 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Deepa Dinamani, linux-fsdevel

On Thu, Sep 5, 2019 at 6:58 PM Mike Marshall <hubcap@omnibond.com> wrote:
>
> I spoke to Walt Ligon about the versioning code, and also shared
> this thread with him. He isn't a fan of the versioning code.
> and we think it should go. As I read through the commit messages
> from when the versioning code was added, it relates to mtime
> on directories. If a directory is read, and it has enough entries,
> it might take several operations to collect all the entries. During
> this time the directory might change. The versioning is a way to
> tell that something changed between one of the operations...
>
>    commit: 7878027e9c2 (Oct 2004)
>      - added a directory version that is passed back from the server to
>        the client on each successful readdir call (happens to be the
>        directory's mtime encoded as an opaque uint64_t)
>
> We will work to see if we can figure out what we need to do to Orangefs
> on both the userspace side and the kernel module side to have all 64 bit
> time values.

Ok, sounds good. For the time being, I have applied the patch
that limits the kernel to timestamps in the 1970 to 2106 range, which
is compatible with the existing user space and will be good enough for
a while.

If you can ignore the old pre-versioning interfaces, you can decide to
encode the epoch number in the remaining 12 bits of the on-disk
representation, like

    time64 = (u32)(timeversion >> 32) + ((s64)(timeversion & 0xffc00000) << 12);

to extend it into the far-enough future (136 years times 2^12), or possibly
using

    time64 = (s32)(timeversion >> 32) + ((s64)(timeversion & 0xffc00000) << 12);

to interpret existing timestamps with the msb set as dates between 1902
and 1970, which would fix the test case that broke, but disallow dates past
2038 with unmodified kernels.

     Arnd

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2019-09-05 18:33 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-29  4:11 [GIT PULL] vfs: Add support for timestamp limits Deepa Dinamani
2019-08-29  4:38 ` Deepa Dinamani
2019-08-29  4:38   ` Deepa Dinamani
2019-08-29  4:38   ` [f2fs-dev] " Deepa Dinamani
2019-08-30  1:20   ` Mike Marshall
2019-08-30  1:20     ` Mike Marshall
2019-08-30  1:20     ` [f2fs-dev] " Mike Marshall
2019-08-30  2:02     ` Deepa Dinamani
2019-08-30  2:02       ` Deepa Dinamani
2019-08-30  2:02       ` Deepa Dinamani
2019-08-30  2:02       ` [f2fs-dev] " Deepa Dinamani
2019-08-30 13:58       ` Arnd Bergmann
2019-08-30 13:58         ` Arnd Bergmann
2019-08-30 13:58         ` [f2fs-dev] " Arnd Bergmann
2019-08-31 22:50         ` Deepa Dinamani
2019-08-31 22:50           ` Deepa Dinamani
2019-08-31 22:50           ` [f2fs-dev] " Deepa Dinamani
2019-09-05 16:58           ` Mike Marshall
2019-09-05 18:33             ` Arnd Bergmann
2019-08-30 12:56 ` Arnd Bergmann
2019-08-30 15:47   ` [GIT PULL RESEND] " Deepa Dinamani
2019-08-30 15:47     ` Deepa Dinamani
2019-08-30 15:47     ` [f2fs-dev] " Deepa Dinamani
2019-08-30 15:47     ` Deepa Dinamani
2019-08-30 16:23     ` Arnd Bergmann
2019-08-30 16:23       ` Arnd Bergmann
2019-08-30 16:23       ` [f2fs-dev] " Arnd Bergmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.