diff options
Diffstat (limited to 'fs/exfat/exfat_super.c')
-rw-r--r-- | fs/exfat/exfat_super.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/fs/exfat/exfat_super.c b/fs/exfat/exfat_super.c index d770deaf1..7d9b9ab06 100644 --- a/fs/exfat/exfat_super.c +++ b/fs/exfat/exfat_super.c @@ -349,7 +349,11 @@ static int exfat_d_hash(const struct dentry *dentry, const struct inode *inode, struct qstr *qstr) #endif { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) + qstr->hash = full_name_hash(dentry, qstr->name, exfat_striptail_len(qstr)); +#else qstr->hash = full_name_hash(qstr->name, exfat_striptail_len(qstr)); +#endif return 0; } @@ -370,7 +374,11 @@ static int exfat_d_hashi(const struct dentry *dentry, const struct inode *inode, name = qstr->name; len = exfat_striptail_len(qstr); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) + hash = init_name_hash(dentry); +#else hash = init_name_hash(); +#endif while (len--) hash = partial_name_hash(nls_upper(sb, *name++), hash); qstr->hash = end_name_hash(hash); @@ -378,7 +386,10 @@ static int exfat_d_hashi(const struct dentry *dentry, const struct inode *inode, return 0; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) +static int exfat_cmpi(const struct dentry *dentry, + unsigned int len, const char *str, const struct qstr *name) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0) static int exfat_cmpi(const struct dentry *parent, const struct dentry *dentry, unsigned int len, const char *str, const struct qstr *name) #elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) @@ -389,7 +400,11 @@ static int exfat_cmpi(const struct dentry *parent, const struct inode *pinode, unsigned int len, const char *str, const struct qstr *name) #endif { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) + struct nls_table *t = EXFAT_SB(dentry->d_sb)->nls_io; +#else struct nls_table *t = EXFAT_SB(parent->d_sb)->nls_io; +#endif unsigned int alen, blen; #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) @@ -416,8 +431,10 @@ static int exfat_cmpi(const struct dentry *parent, const struct inode *pinode, } return 1; } - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) +static int exfat_cmp(const struct dentry *dentry, + unsigned int len, const char *str, const struct qstr *name) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0) static int exfat_cmp(const struct dentry *parent, const struct dentry *dentry, unsigned int len, const char *str, const struct qstr *name) #elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) @@ -2623,4 +2640,4 @@ MODULE_ALIAS_FS("texfat"); #else MODULE_ALIAS_FS("exfat"); #endif -#endif +#endif
\ No newline at end of file |