mirror of https://github.com/openwrt/packages.git
exfat-nofuse: fix compilation during kernel time64 transition
The change has been compile-tested against the following vanilla kernels - linux-3.18.130.tar.xz - linux-4.14.90.tar.xz - linux-4.19.9.tar.xz - linux-4.9.146.tar.xz Run tested with QEMU malta/be with kernel 4.9.146 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>pull/7888/head
parent
8cfbcfd757
commit
5cb4bc686c
|
@ -1,5 +1,6 @@
|
|||
#
|
||||
# Copyright (C) 2014 Bruno Randolf <br1@einfach.org>
|
||||
# Copyright (C) 2019 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -9,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
|||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=exfat-nofuse
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/dorimanx/exfat-nofuse.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
From c0d3452e0366e2ab4fc51e7981e48636facdf486 Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Tue, 8 Jan 2019 15:45:26 +0000
|
||||
Subject: [PATCH 1/2] exfat_oal: use get_seconds() directly
|
||||
|
||||
---
|
||||
exfat_oal.c | 9 +--------
|
||||
1 file changed, 1 insertion(+), 8 deletions(-)
|
||||
|
||||
diff --git a/exfat_oal.c b/exfat_oal.c
|
||||
index 7435442..83f8e4b 100644
|
||||
--- a/exfat_oal.c
|
||||
+++ b/exfat_oal.c
|
||||
@@ -128,16 +128,9 @@ static time_t accum_days_in_year[] = {
|
||||
|
||||
TIMESTAMP_T *tm_current(TIMESTAMP_T *tp)
|
||||
{
|
||||
- struct timespec ts;
|
||||
time_t second, day, leap_day, month, year;
|
||||
|
||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0)
|
||||
- ts = CURRENT_TIME_SEC;
|
||||
-#else
|
||||
- ktime_get_real_ts(&ts);
|
||||
-#endif
|
||||
-
|
||||
- second = ts.tv_sec;
|
||||
+ second = get_seconds();
|
||||
second -= sys_tz.tz_minuteswest * SECS_PER_MIN;
|
||||
|
||||
/* Jan 1 GMT 00:00:00 1980. But what about another time zone? */
|
|
@ -0,0 +1,42 @@
|
|||
From 4b9607d6fd4a35d9bb35527fae7aac23d848c0ce Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Tue, 8 Jan 2019 15:45:24 +0000
|
||||
Subject: [PATCH 2/2] 4.18.patch
|
||||
|
||||
Imported from https://aur.archlinux.org/cgit/aur.git/plain/4.18.patch?h=exfat-dkms-git
|
||||
---
|
||||
exfat_super.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/exfat_super.c b/exfat_super.c
|
||||
index 312de36..3ac18b0 100644
|
||||
--- a/exfat_super.c
|
||||
+++ b/exfat_super.c
|
||||
@@ -147,8 +147,13 @@ static time_t accum_days_in_year[] = {
|
||||
static void _exfat_truncate(struct inode *inode, loff_t old_size);
|
||||
|
||||
/* Convert a FAT time/date pair to a UNIX date (seconds since 1 1 70). */
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,01)
|
||||
+void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec64 *ts,
|
||||
+ DATE_TIME_T *tp)
|
||||
+#else
|
||||
void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec *ts,
|
||||
DATE_TIME_T *tp)
|
||||
+#endif
|
||||
{
|
||||
time_t year = tp->Year;
|
||||
time_t ld;
|
||||
@@ -166,8 +171,13 @@ void exfat_time_fat2unix(struct exfat_sb_info *sbi, struct timespec *ts,
|
||||
}
|
||||
|
||||
/* Convert linear UNIX date to a FAT time/date pair. */
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,01)
|
||||
+void exfat_time_unix2fat(struct exfat_sb_info *sbi, struct timespec64 *ts,
|
||||
+ DATE_TIME_T *tp)
|
||||
+#else
|
||||
void exfat_time_unix2fat(struct exfat_sb_info *sbi, struct timespec *ts,
|
||||
DATE_TIME_T *tp)
|
||||
+#endif
|
||||
{
|
||||
time_t second = ts->tv_sec;
|
||||
time_t day, month, year;
|
Loading…
Reference in New Issue