summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Parnell2016-03-27 19:04:25 -0500
committerMatt Parnell2016-03-27 19:04:25 -0500
commit99800963ca8b239daff32c59a2655dc16bf685ac (patch)
treeda5e67b017e08c71b9351eb286d37f2b47f527bd
parent23597779b33bbb13f458706387c1fe2f694ccb22 (diff)
downloadaur-99800963ca8b239daff32c59a2655dc16bf685ac.tar.gz
proper exfat fix
-rw-r--r--PKGBUILD4
-rw-r--r--exfat_fix.patch44
2 files changed, 41 insertions, 7 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 35b025e4471..6d65db47359 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
# Original PKGBUILD Contributor: Patrick Bartels <p4ddy.b@gmail.com>
# Thanks to Bregol
pkgname="linux-zen-git"
-pkgver=4.5.0+575604+gace7217
+pkgver=4.5.0+575611+g3831a7a
pkgdesc="Featureful kernel including various new features, code and optimizations to better suit desktops"
url="https://github.com/damentz/zen-kernel"
license=("GPL2")
@@ -20,7 +20,7 @@ source=("linux-zen.conf"
'git://github.com/damentz/zen-kernel.git#branch=4.5/master')
sha256sums=('6373073ad943e068478ef1373be4eb2a7e473da8743d946f1f50cd364685ab87'
'18fe6b2664a9a740544c4cb990efe5ec933d6e64caf9e5d0a6ced92af0027c2d'
- '12e5e65625ef15032af32201386d9bcdef163ba721ad44cba88e149fb4ce7553'
+ '732b0f9041acacccbe96c0f7dff6faf34930abdbd29f97c21fd5e5822aca78fe'
'SKIP')
_CORES=1
diff --git a/exfat_fix.patch b/exfat_fix.patch
index 1bcb77a042a..6bad9073bdc 100644
--- a/exfat_fix.patch
+++ b/exfat_fix.patch
@@ -1,14 +1,48 @@
diff --git a/fs/exfat/exfat_super.c b/fs/exfat/exfat_super.c
-index a003a72..464de88 100644
+index a003a72..02d4fd2 100644
--- a/fs/exfat/exfat_super.c
+++ b/fs/exfat/exfat_super.c
-@@ -1375,8 +1375,7 @@ static void *exfat_follow_link(struct dentry *dentry, struct nameidata *nd)
- #endif
+@@ -1359,7 +1359,19 @@ const struct inode_operations exfat_dir_inode_operations = {
+ /*======================================================================*/
+ /* File Operations */
+ /*======================================================================*/
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(4,1,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0)
++static const char *exfat_get_link(struct dentry *dentry, struct inode *inode, struct delayed_call *done)
++{
++ struct exfat_inode_info *ei = EXFAT_I(inode);
++ if (ei->target != NULL) {
++ char *cookie = ei->target;
++ if (cookie != NULL) {
++ return (char *)(ei->target);
++ }
++ }
++ return NULL;
++}
++#elif LINUX_VERSION_CODE > KERNEL_VERSION(4,1,0)
+ static const char *exfat_follow_link(struct dentry *dentry, void **cookie)
+ {
+ struct exfat_inode_info *ei = EXFAT_I(dentry->d_inode);
+@@ -1376,7 +1388,12 @@ static void *exfat_follow_link(struct dentry *dentry, struct nameidata *nd)
const struct inode_operations exfat_symlink_inode_operations = {
-- .readlink = generic_readlink,
+ .readlink = generic_readlink,
- .follow_link = exfat_follow_link,
-+ .readlink = generic_readlink
++ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0)
++ .follow_link = exfat_follow_link,
++ #endif
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0)
++ .get_link = exfat_get_link,
++ #endif
};
static int exfat_file_release(struct inode *inode, struct file *filp)
+@@ -1970,7 +1987,7 @@ static void exfat_evict_inode(struct inode *inode)
+ if (!inode->i_nlink)
+ i_size_write(inode, 0);
+ invalidate_inode_buffers(inode);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,80)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)
+ end_writeback(inode);
+ #else
+ clear_inode(inode);