• Linus Torvalds's avatar
    Merge tag 'v6.6-rc3.vfs.ctime.revert' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · b5cbe7c0
    Linus Torvalds authored
    Pull finegrained timestamp reverts from Christian Brauner:
     "Earlier this week we sent a few minor fixes for the multi-grained
      timestamp work in [1]. While we were polishing those up after Linus
      realized that there might be a nicer way to fix them we received a
      regression report in [2] that fine grained timestamps break gnulib
      tests and thus possibly other tools.
    
      The kernel will elide fine-grain timestamp updates when no one is
      actively querying for them to avoid performance impacts. So a sequence
      like write(f1) stat(f2) write(f2) stat(f2) write(f1) stat(f1) may
      result in timestamp f1 to be older than the final f2 timestamp even
      though f1 was last written too but the second write didn't update the
      timestamp.
    
      Such plotholes can lead to subtle bugs when programs compare
      timestamps. For example, the nap() function in [2] will estimate that
      it needs to wait one ns on a fine-grain timestamp enabled filesytem
      between subsequent calls to observe a timestamp change. But in general
      we don't update timestamps with more than one jiffie if we think that
      no one is actively querying for fine-grain timestamps to avoid
      performance impacts.
    
      While discussing various fixes the decision was to go back to the
      drawing board and ultimately to explore a solution that involves only
      exposing such fine-grained timestamps to nfs internally and never to
      userspace.
    
      As there are multiple solutions discussed the honest thing to do here
      is not to fix this up or disable it but to cleanly revert. The general
      infrastructure will probably come back but there is no reason to keep
      this code in mainline.
    
      The general changes to timestamp handling are valid and a good cleanup
      that will stay. The revert is fully bisectable"
    
    Link: https://lore.kernel.org/all/20230918-hirte-neuzugang-4c2324e7bae3@brauner [1]
    Link: https://lore.kernel.org/all/bf0524debb976627693e12ad23690094e4514303.camel@linuxfromscratch.org [2]
    
    * tag 'v6.6-rc3.vfs.ctime.revert' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
      Revert "fs: add infrastructure for multigrain timestamps"
      Revert "btrfs: convert to multigrain timestamps"
      Revert "ext4: switch to multigrain timestamps"
      Revert "xfs: switch to multigrain timestamps"
      Revert "tmpfs: add support for multigrain timestamps"
    b5cbe7c0
file.c 108 KB