[4.9,039/130] fuse: fix time_to_jiffies nsec sanity check
diff mbox series

Message ID 20170124075536.561244434@linuxfoundation.org
State New, archived
Headers show
  • 4.9.6-stable review
Related show

Commit Message

Greg Kroah-Hartman Jan. 24, 2017, 7:54 a.m. UTC
4.9-stable review patch.  If anyone has any objections, please let me know.


From: David Sheets <david.sheets@docker.com>

commit 210675270caa33253e4c33f3c5e657e7d6060812 upstream.

Commit bcb6f6d2b9c2 ("fuse: use timespec64") introduced clamped nsec values
in time_to_jiffies but used the max of nsec and NSEC_PER_SEC - 1 instead of
the min. Because of this, dentries would stay in the cache longer than
requested and go stale in scenarios that relied on their timely eviction.

Fixes: bcb6f6d2b9c2 ("fuse: use timespec64")
Signed-off-by: David Sheets <dsheets@docker.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 fs/fuse/dir.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff mbox series

--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -68,7 +68,7 @@  static u64 time_to_jiffies(u64 sec, u32
 	if (sec || nsec) {
 		struct timespec64 ts = {
-			max_t(u32, nsec, NSEC_PER_SEC - 1)
+			min_t(u32, nsec, NSEC_PER_SEC - 1)
 		return get_jiffies_64() + timespec64_to_jiffies(&ts);