]> git.baikalelectronics.ru Git - kernel.git/commit
tty: fix up atime/mtime mess, take four
authorJiri Slaby <jslaby@suse.cz>
Fri, 27 Feb 2015 17:40:31 +0000 (18:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Mar 2015 02:06:51 +0000 (03:06 +0100)
commit51ade7d55955a7b81733122e22535d1fd74286b7
treebd55289965c449cadab342b0e57fe549dc9cb3eb
parent8a78caafd16e725c03e8bd8b38cfe0c46679201e
tty: fix up atime/mtime mess, take four

This problem was taken care of three times already in
a2c1410fd460fa29ac67a83e5c43ee882cadf09f (TTY: do not update
  atime/mtime on read/write),
4687116e2ae92ef0317aace114f62cc009bfe3f4 (TTY: fix atime/mtime
  regression), and
ef5924ea6915dbd05ec645ca1bf85706156a3938 (tty: fix up atime/mtime
  mess, take three)

But it still misses one point. As John Paul correctly points out, we
do not care about setting date. If somebody ever changes wall
time backwards (by mistake for example), tty timestamps are never
updated until the original wall time passes.

So check the absolute difference of times and if it large than "8
seconds or so", always update the time. That means we will update
immediatelly when changing time. Ergo, CAP_SYS_TIME can foul the
check, but it was always that way.

Thanks John for serving me this so nicely debugged.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reported-by: John Paul Perry <john_paul.perry@alcatel-lucent.com>
Cc: <stable@vger.kernel.org> # all, as ef5924ea6 was backported
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_io.c