diff options
author | Wolfram Sang <wsa@kernel.org> | 2020-05-20 16:27:45 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@kernel.org> | 2020-05-20 16:27:45 +0300 |
commit | f89c326dcaa0cb8c3af7764e75eeed4e3f3c879a (patch) | |
tree | 31a5967da1f04180a1a922258f6947ad17255ee8 /fs/exfat/misc.c | |
parent | 6fe12cdbcfe35ad4726a619a9546822d34fc934c (diff) | |
parent | efa7fb4c6c8e4171fd29a5935a9dc7a28e363278 (diff) | |
download | linux-f89c326dcaa0cb8c3af7764e75eeed4e3f3c879a.tar.xz |
Merge branch 'i2c/for-current-fixed' into i2c/for-5.8
Diffstat (limited to 'fs/exfat/misc.c')
-rw-r--r-- | fs/exfat/misc.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/fs/exfat/misc.c b/fs/exfat/misc.c index 14a3300848f6..ebd2cbe3cbc1 100644 --- a/fs/exfat/misc.c +++ b/fs/exfat/misc.c @@ -88,7 +88,8 @@ void exfat_get_entry_time(struct exfat_sb_info *sbi, struct timespec64 *ts, if (time_ms) { ts->tv_sec += time_ms / 100; ts->tv_nsec = (time_ms % 100) * 10 * NSEC_PER_MSEC; - } + } else + ts->tv_nsec = 0; if (tz & EXFAT_TZ_VALID) /* Adjust timezone to UTC0. */ @@ -124,6 +125,17 @@ void exfat_set_entry_time(struct exfat_sb_info *sbi, struct timespec64 *ts, *tz = EXFAT_TZ_VALID; } +/* + * The timestamp for access_time has double seconds granularity. + * (There is no 10msIncrement field for access_time unlike create/modify_time) + * atime also has only a 2-second resolution. + */ +void exfat_truncate_atime(struct timespec64 *ts) +{ + ts->tv_sec = round_down(ts->tv_sec, 2); + ts->tv_nsec = 0; +} + unsigned short exfat_calc_chksum_2byte(void *data, int len, unsigned short chksum, int type) { |