Fix compilation on Linux >= 5.0.0
This commit is contained in:
parent
f6f0911233
commit
9673317be7
6
.SRCINFO
6
.SRCINFO
|
|
@ -1,5 +1,5 @@
|
||||||
# Generated by makepkg 5.1.2
|
# Generated by makepkg 5.1.3
|
||||||
# Sun Mar 10 02:13:46 UTC 2019
|
# Wed Mar 13 01:49:29 UTC 2019
|
||||||
pkgbase = sdfat-dkms-git
|
pkgbase = sdfat-dkms-git
|
||||||
pkgdesc = FAT12/16/32(VFAT)/64(exFAT) filesytems kernel module - use with DKMS
|
pkgdesc = FAT12/16/32(VFAT)/64(exFAT) filesytems kernel module - use with DKMS
|
||||||
pkgver = 26.4f65bdd
|
pkgver = 26.4f65bdd
|
||||||
|
|
@ -20,12 +20,14 @@ pkgbase = sdfat-dkms-git
|
||||||
source = dkms.conf
|
source = dkms.conf
|
||||||
source = mount.exfat
|
source = mount.exfat
|
||||||
source = fix-blkdev.patch
|
source = fix-blkdev.patch
|
||||||
|
source = fix-kernel_5.patch
|
||||||
source = fix-makefile.patch
|
source = fix-makefile.patch
|
||||||
source = fix-module_alias.patch
|
source = fix-module_alias.patch
|
||||||
sha512sums = SKIP
|
sha512sums = SKIP
|
||||||
sha512sums = d61b198adef98554767c596e9708b64a6ed8cd2ffd382c8cb38938fc467d27e8849969ea94d803683d44397b4f5f0c512c01ed05d0f35fb03611f56401e19a31
|
sha512sums = d61b198adef98554767c596e9708b64a6ed8cd2ffd382c8cb38938fc467d27e8849969ea94d803683d44397b4f5f0c512c01ed05d0f35fb03611f56401e19a31
|
||||||
sha512sums = 85c54950e69e342221343b8b542fda47f80b9a7104e1097a7f1c9a09f69758ef8881c238d2740f3a21aa2b5cdcb3b9b8224c731ec2e39fa4632f56c2df85bc84
|
sha512sums = 85c54950e69e342221343b8b542fda47f80b9a7104e1097a7f1c9a09f69758ef8881c238d2740f3a21aa2b5cdcb3b9b8224c731ec2e39fa4632f56c2df85bc84
|
||||||
sha512sums = a84005de882a14a29252956f009d9785435a1dff7e578537eb5d0f222e2d89925aa95f883cd7817becac384ebaa4cc44ef636a41ea8e063b306cfa33add54a69
|
sha512sums = a84005de882a14a29252956f009d9785435a1dff7e578537eb5d0f222e2d89925aa95f883cd7817becac384ebaa4cc44ef636a41ea8e063b306cfa33add54a69
|
||||||
|
sha512sums = c0e4d47b070373da4a3a201289fc56b734f6b31659d27b9772b48a2ea440247b0c619cf71a99dd02041d67ab9fbf9865ff443c70a456389dcc3b3ac985b229d1
|
||||||
sha512sums = f55b3ed728ce8716aee0924cd7f27534e25a9e3984bec14e17839e91f1ad290b7e2c9ed85e4f93678f8a0c200c7ed087ec659fb57d84d55e35d4098e3296504e
|
sha512sums = f55b3ed728ce8716aee0924cd7f27534e25a9e3984bec14e17839e91f1ad290b7e2c9ed85e4f93678f8a0c200c7ed087ec659fb57d84d55e35d4098e3296504e
|
||||||
sha512sums = 5859133537c76b333eaeaa12f5144528891479d21062bbd90560e7f100f074c4f4b5f846b7ad4d720f2ea4595ace88c3bd3f9b67e5c76ff4b9e4d52989dacf96
|
sha512sums = 5859133537c76b333eaeaa12f5144528891479d21062bbd90560e7f100f074c4f4b5f846b7ad4d720f2ea4595ace88c3bd3f9b67e5c76ff4b9e4d52989dacf96
|
||||||
|
|
||||||
|
|
|
||||||
3
PKGBUILD
3
PKGBUILD
|
|
@ -18,12 +18,14 @@ source=("${_gitname}::git+${url}.git"
|
||||||
dkms.conf
|
dkms.conf
|
||||||
mount.exfat
|
mount.exfat
|
||||||
fix-blkdev.patch
|
fix-blkdev.patch
|
||||||
|
fix-kernel_5.patch
|
||||||
fix-makefile.patch
|
fix-makefile.patch
|
||||||
fix-module_alias.patch)
|
fix-module_alias.patch)
|
||||||
sha512sums=('SKIP'
|
sha512sums=('SKIP'
|
||||||
'd61b198adef98554767c596e9708b64a6ed8cd2ffd382c8cb38938fc467d27e8849969ea94d803683d44397b4f5f0c512c01ed05d0f35fb03611f56401e19a31'
|
'd61b198adef98554767c596e9708b64a6ed8cd2ffd382c8cb38938fc467d27e8849969ea94d803683d44397b4f5f0c512c01ed05d0f35fb03611f56401e19a31'
|
||||||
'85c54950e69e342221343b8b542fda47f80b9a7104e1097a7f1c9a09f69758ef8881c238d2740f3a21aa2b5cdcb3b9b8224c731ec2e39fa4632f56c2df85bc84'
|
'85c54950e69e342221343b8b542fda47f80b9a7104e1097a7f1c9a09f69758ef8881c238d2740f3a21aa2b5cdcb3b9b8224c731ec2e39fa4632f56c2df85bc84'
|
||||||
'a84005de882a14a29252956f009d9785435a1dff7e578537eb5d0f222e2d89925aa95f883cd7817becac384ebaa4cc44ef636a41ea8e063b306cfa33add54a69'
|
'a84005de882a14a29252956f009d9785435a1dff7e578537eb5d0f222e2d89925aa95f883cd7817becac384ebaa4cc44ef636a41ea8e063b306cfa33add54a69'
|
||||||
|
'c0e4d47b070373da4a3a201289fc56b734f6b31659d27b9772b48a2ea440247b0c619cf71a99dd02041d67ab9fbf9865ff443c70a456389dcc3b3ac985b229d1'
|
||||||
'f55b3ed728ce8716aee0924cd7f27534e25a9e3984bec14e17839e91f1ad290b7e2c9ed85e4f93678f8a0c200c7ed087ec659fb57d84d55e35d4098e3296504e'
|
'f55b3ed728ce8716aee0924cd7f27534e25a9e3984bec14e17839e91f1ad290b7e2c9ed85e4f93678f8a0c200c7ed087ec659fb57d84d55e35d4098e3296504e'
|
||||||
'5859133537c76b333eaeaa12f5144528891479d21062bbd90560e7f100f074c4f4b5f846b7ad4d720f2ea4595ace88c3bd3f9b67e5c76ff4b9e4d52989dacf96')
|
'5859133537c76b333eaeaa12f5144528891479d21062bbd90560e7f100f074c4f4b5f846b7ad4d720f2ea4595ace88c3bd3f9b67e5c76ff4b9e4d52989dacf96')
|
||||||
|
|
||||||
|
|
@ -40,6 +42,7 @@ prepare() {
|
||||||
patch -p1 < "${srcdir}/fix-blkdev.patch"
|
patch -p1 < "${srcdir}/fix-blkdev.patch"
|
||||||
patch -p1 < "${srcdir}/fix-makefile.patch"
|
patch -p1 < "${srcdir}/fix-makefile.patch"
|
||||||
patch -p1 < "${srcdir}/fix-module_alias.patch"
|
patch -p1 < "${srcdir}/fix-module_alias.patch"
|
||||||
|
patch -p1 < "${srcdir}/fix-kernel_5.patch"
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
--- a/misc.c
|
||||||
|
+++ b/misc.c
|
||||||
|
@@ -262,8 +262,14 @@
|
||||||
|
|
||||||
|
TIMESTAMP_T *tm_now(struct sdfat_sb_info *sbi, TIMESTAMP_T *tp)
|
||||||
|
{
|
||||||
|
- struct timespec_compat ts = CURRENT_TIME_SEC;
|
||||||
|
+ struct timespec_compat ts;
|
||||||
|
DATE_TIME_T dt;
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
+ ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
|
||||||
|
sdfat_time_unix2fat(sbi, &ts, &dt);
|
||||||
|
|
||||||
|
--- a/sdfat.h
|
||||||
|
+++ b/sdfat.h
|
||||||
|
@@ -53,9 +53,9 @@
|
||||||
|
#define timespec_compat timespec
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0)
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
|
||||||
|
#define CURRENT_TIME_SEC timespec64_trunc(current_kernel_time64(), NSEC_PER_SEC)
|
||||||
|
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||||
|
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
#define CURRENT_TIME_SEC timespec_trunc(current_kernel_time(), NSEC_PER_SEC)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- a/sdfat.c
|
||||||
|
+++ b/sdfat.c
|
||||||
|
@@ -2372,7 +2372,11 @@
|
||||||
|
|
||||||
|
TMSG("%s entered\n", __func__);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
err = fsapi_create(dir, (u8 *) dentry->d_name.name, FM_REGULAR, &fid);
|
||||||
|
if (err)
|
||||||
|
@@ -2535,7 +2539,11 @@
|
||||||
|
|
||||||
|
TMSG("%s entered\n", __func__);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SDFAT_I(inode)->fid.size = i_size_read(inode);
|
||||||
|
|
||||||
|
@@ -2584,7 +2592,11 @@
|
||||||
|
|
||||||
|
TMSG("%s entered\n", __func__);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
err = fsapi_create(dir, (u8 *) dentry->d_name.name, FM_SYMLINK, &fid);
|
||||||
|
if (err)
|
||||||
|
@@ -2645,7 +2657,11 @@
|
||||||
|
|
||||||
|
TMSG("%s entered\n", __func__);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
err = fsapi_mkdir(dir, (u8 *) dentry->d_name.name, &fid);
|
||||||
|
if (err)
|
||||||
|
@@ -2694,7 +2710,11 @@
|
||||||
|
|
||||||
|
TMSG("%s entered\n", __func__);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SDFAT_I(inode)->fid.size = i_size_read(inode);
|
||||||
|
|
||||||
|
@@ -2739,7 +2759,11 @@
|
||||||
|
old_inode = old_dentry->d_inode;
|
||||||
|
new_inode = new_dentry->d_inode;
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SDFAT_I(old_inode)->fid.size = i_size_read(old_inode);
|
||||||
|
|
||||||
|
@@ -2811,13 +2835,20 @@
|
||||||
|
{
|
||||||
|
struct address_space *mapping = inode->i_mapping;
|
||||||
|
loff_t start = i_size_read(inode), count = size - i_size_read(inode);
|
||||||
|
+ struct timespec_compat ts;
|
||||||
|
int err, err2;
|
||||||
|
|
||||||
|
err = generic_cont_expand_simple(inode, size);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
- inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
+ ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ inode->i_ctime = inode->i_mtime = ts;
|
||||||
|
mark_inode_dirty(inode);
|
||||||
|
|
||||||
|
if (!IS_SYNC(inode))
|
||||||
|
@@ -3036,6 +3067,7 @@
|
||||||
|
{
|
||||||
|
struct super_block *sb = inode->i_sb;
|
||||||
|
struct sdfat_sb_info *sbi = SDFAT_SB(sb);
|
||||||
|
+ struct timespec_compat ts;
|
||||||
|
FS_INFO_T *fsi = &(sbi->fsi);
|
||||||
|
unsigned int blocksize = 1 << inode->i_blkbits;
|
||||||
|
loff_t aligned_size;
|
||||||
|
@@ -3059,7 +3091,13 @@
|
||||||
|
if (err)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
- inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
+ ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ inode->i_ctime = inode->i_mtime = ts;
|
||||||
|
if (IS_DIRSYNC(inode))
|
||||||
|
(void) sdfat_sync_inode(inode);
|
||||||
|
else
|
||||||
|
@@ -3769,6 +3807,7 @@
|
||||||
|
struct page *pagep, void *fsdata)
|
||||||
|
{
|
||||||
|
struct inode *inode = mapping->host;
|
||||||
|
+ struct timespec_compat ts;
|
||||||
|
FILE_ID_T *fid = &(SDFAT_I(inode)->fid);
|
||||||
|
int err;
|
||||||
|
|
||||||
|
@@ -3785,8 +3824,14 @@
|
||||||
|
if (err < len)
|
||||||
|
sdfat_write_failed(mapping, pos+len);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
+ ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (!(err < 0) && !(fid->attr & ATTR_ARCHIVE)) {
|
||||||
|
- inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC;
|
||||||
|
+ inode->i_mtime = inode->i_ctime = ts;
|
||||||
|
fid->attr |= ATTR_ARCHIVE;
|
||||||
|
mark_inode_dirty(inode);
|
||||||
|
}
|
||||||
|
@@ -4805,7 +4850,11 @@
|
||||||
|
FS_INFO_T *fsi = &(sbi->fsi);
|
||||||
|
DIR_ENTRY_T info;
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||||
|
ts = CURRENT_TIME_SEC;
|
||||||
|
+#else
|
||||||
|
+ ktime_get_coarse_real_ts64(&ts);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SDFAT_I(inode)->fid.dir.dir = fsi->root_dir;
|
||||||
|
SDFAT_I(inode)->fid.dir.flags = 0x01;
|
||||||
Loading…
Reference in New Issue