From 3df8d77dd05e135c1b79f5ef048ff606d2b70cd1 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 8 Mar 2020 11:02:31 +0000 Subject: sys-kernel/zfs-dkms : fix kernel 5.5 compat --- sys-kernel/zfs-dkms/files/kernel-5.5.patch | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sys-kernel/zfs-dkms/files/kernel-5.5.patch (limited to 'sys-kernel/zfs-dkms/files/kernel-5.5.patch') diff --git a/sys-kernel/zfs-dkms/files/kernel-5.5.patch b/sys-kernel/zfs-dkms/files/kernel-5.5.patch new file mode 100644 index 00000000..8d2a950f --- /dev/null +++ b/sys-kernel/zfs-dkms/files/kernel-5.5.patch @@ -0,0 +1,35 @@ +diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c +index 4ffc41cca34..cbe9e18316e 100644 +--- a/module/zfs/vdev_disk.c ++++ b/module/zfs/vdev_disk.c +@@ -473,6 +473,30 @@ + + #ifdef HAVE_BIO_SET_DEV + #if defined(CONFIG_BLK_CGROUP) && defined(HAVE_BIO_SET_DEV_GPL_ONLY) ++static inline bool vdev_percpu_ref_tryget(struct percpu_ref *ref) ++{ ++ unsigned long __percpu *percpu_count; ++ bool ret; ++ ++ rcu_read_lock_sched(); ++ ++ if (__ref_is_percpu(ref, &percpu_count)) { ++ this_cpu_inc(*percpu_count); ++ ret = true; ++ } else { ++ ret = atomic_long_inc_not_zero(&ref->count); ++ } ++ ++ rcu_read_unlock_sched(); ++ ++ return ret; ++} ++#define percpu_ref_tryget vdev_percpu_ref_tryget ++static inline bool vdev_blkg_tryget(struct blkcg_gq *blkg) ++{ ++ return blkg && vdev_percpu_ref_tryget(&blkg->refcnt); ++} ++#define blkg_tryget vdev_blkg_tryget + /* + * The Linux 5.0 kernel updated the bio_set_dev() macro so it calls the + * GPL-only bio_associate_blkg() symbol thus inadvertently converting -- cgit v1.2.3