diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2016-10-01 07:32:32 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2016-10-01 07:32:32 +0200 |
commit | bcb6f6d2b9c299db32b20f4357c36a101e7f0293 (patch) | |
tree | 65dcb451a0853740d05a4eb6e1f3df1ce8b515f8 /fs/fuse | |
parent | fuse: don't use ->d_time (diff) | |
download | linux-bcb6f6d2b9c299db32b20f4357c36a101e7f0293.tar.xz linux-bcb6f6d2b9c299db32b20f4357c36a101e7f0293.zip |
fuse: use timespec64
And check for valid nsec value before passing into timespec64_to_jiffies().
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse')
-rw-r--r-- | fs/fuse/dir.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 45f704aaa57f..30d9dc976e61 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -63,11 +63,15 @@ static inline u64 fuse_dentry_time(struct dentry *entry) /* * Calculate the time in jiffies until a dentry/attributes are valid */ -static u64 time_to_jiffies(unsigned long sec, unsigned long nsec) +static u64 time_to_jiffies(u64 sec, u32 nsec) { if (sec || nsec) { - struct timespec ts = {sec, nsec}; - return get_jiffies_64() + timespec_to_jiffies(&ts); + struct timespec64 ts = { + sec, + max_t(u32, nsec, NSEC_PER_SEC - 1) + }; + + return get_jiffies_64() + timespec64_to_jiffies(&ts); } else return 0; } |