Linux >=4.4.8 have the function file_dentry already defined while Linux 4.5 only got it with v4.5.2. Older stable kernel versions might also have gotten this function. Maintaining a full list of kernel versions which have this functionality is too much of a burden and thus the calls to this function are simply replaced with calls to a new private function batadv_file_dentry.
Signed-off-by: Sven Eckelmann sven@narfation.org --- compat-include/linux/fs.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/compat-include/linux/fs.h b/compat-include/linux/fs.h index 4d6bb1d7..e0d6f7c7 100644 --- a/compat-include/linux/fs.h +++ b/compat-include/linux/fs.h @@ -27,11 +27,20 @@
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-static inline struct dentry *file_dentry(const struct file *file) +static inline struct dentry *batadv_file_dentry(const struct file *file) { - return file->f_path.dentry; + struct dentry *dentry = file->f_path.dentry; + +#ifdef DCACHE_OP_REAL + if (unlikely(dentry->d_flags & DCACHE_OP_REAL)) + return dentry->d_op->d_real(dentry, file_inode(file)); +#endif + + return dentry; }
+#define file_dentry batadv_file_dentry + #endif /* < KERNEL_VERSION(4, 6, 0) */
#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_FS_H_ */
Linux >=4.4.47 have the function skb_postpush_rcsum already and also v3.16 got it with v3.16.57. Even older stable kernel versions might also have gotten this function with a stable release. Maintaining a full list of kernel versions which have this functionality is too much of a burden and thus the calls to this function are simply replaced with calls to a new private function batadv_skb_postpush_rcsum.
Reported-by: Andreas Ziegler dev@andreas-ziegler.de Signed-off-by: Sven Eckelmann sven@narfation.org --- compat-include/linux/skbuff.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/compat-include/linux/skbuff.h b/compat-include/linux/skbuff.h index 36e4d10d..376ea10b 100644 --- a/compat-include/linux/skbuff.h +++ b/compat-include/linux/skbuff.h @@ -45,16 +45,18 @@ struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
#endif /* < KERNEL_VERSION(4, 2, 0) */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 47) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
-static inline void skb_postpush_rcsum(struct sk_buff *skb, - const void *start, unsigned int len) +static inline void batadv_skb_postpush_rcsum(struct sk_buff *skb, + const void *start, unsigned int len) { if (skb->ip_summed == CHECKSUM_COMPLETE) skb->csum = csum_block_add(skb->csum, csum_partial(start, len, 0), 0); }
+#define skb_postpush_rcsum batadv_skb_postpush_rcsum + #endif /* < KERNEL_VERSION(4, 5, 0) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
b.a.t.m.a.n@lists.open-mesh.org