From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753056AbbCFNQS (ORCPT ); Fri, 6 Mar 2015 08:16:18 -0500 Received: from mail-qc0-f175.google.com ([209.85.216.175]:42358 "EHLO mail-qc0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750843AbbCFNQO (ORCPT ); Fri, 6 Mar 2015 08:16:14 -0500 Message-ID: <1425647774.14441.1.camel@avalar.dragonrealms> Subject: Re: [PATCH 1/1] tty: fix up atime/mtime mess, take four From: Raymond Jennings To: Jiri Slaby Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, john_paul.perry@alcatel-lucent.com, stable@vger.kernel.org, Linus Torvalds Date: Fri, 06 Mar 2015 05:16:14 -0800 In-Reply-To: <1425058831-13923-1-git-send-email-jslaby@suse.cz> References: <1425058831-13923-1-git-send-email-jslaby@suse.cz> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.4.4-3 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2015-02-27 at 18:40 +0100, Jiri Slaby wrote: > 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. If I may ask, what is supposed to happen normally when you write to a tty device? I always thought the tty device was treated just like a normal file wrt. timestamps. Now I see a patch for 8 seconds something. > > Thanks John for serving me this so nicely debugged. > > Signed-off-by: Jiri Slaby > Reported-by: John Paul Perry > Cc: Greg Kroah-Hartman > Cc: # all, as b0b885657 was backported > Cc: Linus Torvalds > --- > drivers/tty/tty_io.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c > index e07f35e14fa2..e31b18a6d576 100644 > --- a/drivers/tty/tty_io.c > +++ b/drivers/tty/tty_io.c > @@ -1032,8 +1032,8 @@ EXPORT_SYMBOL(start_tty); > /* We limit tty time update visibility to every 8 seconds or so. */ > static void tty_update_time(struct timespec *time) > { > - unsigned long sec = get_seconds() & ~7; > - if ((long)(sec - time->tv_sec) > 0) > + unsigned long sec = get_seconds(); > + if (abs(sec - time->tv_sec) & ~7) > time->tv_sec = sec; > } >